-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
114 lines (97 loc) · 3.12 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#! /bin/sh
GRAPH_LIB_NAME="libc_graph_prog.so"
SFML_SOURCE_URL="http://www.sfml-dev.org/files/SFML-2.3.2-sources.zip"
CSFML_SOURCE_URL="http://www.sfml-dev.org/files/CSFML-2.3-sources.zip"
CSFML_ZIP="CSFML.zip"
SFML_ZIP="SFML.zip"
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
echo "Install dependencies"
dnf group install -y "C Development Tools and Libraries"
dnf install -y libX11-devel.x86_64 xorg-x11-apps.x86_64 libxcb-devel.x86_64 xcb-util-devel.x86_64 libXrandr-devel.x86_64 xcb-util-image-devel.x86_64 libgudev-devel.x86_64 glm-devel.noarch mesa-libGL-devel mesa-libEGL-devel freetype-devel.x86_64 libjpeg-turbo-devel.x86_64 openal-soft-devel.x86_64 libogg-devel.x86_64 libvorbis-devel.x86_64 flac-devel.x86_64 systemd-devel
echo "Download SFML Sources"
curl -Lo "$SFML_ZIP" $SFML_SOURCE_URL
echo "Download CSFML Sources"
curl -Lo "$CSFML_ZIP" $CSFML_SOURCE_URL
echo "Unzip SFML"
unzip -qq -o $SFML_ZIP
echo "Unzip CSFML"
unzip -qq -o $CSFML_ZIP
mv SFML-* SFML
mv CSFML-* CSFML
SFML_PATH="`pwd`/SFML"
CSFML_PATH="`pwd`/CSFML"
echo "SFML Compilation"
cd SFML
# WARNING - START PATCH FOR __cpu_model symbol problem
echo "PATCH SFML CMake to fix a problem with __cpu_model"
CSFML_PATCH='
diff --git a/src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt
index 6f02fb6..61638d2 100644
--- a/src/SFML/Graphics/CMakeLists.txt
+++ b/src/SFML/Graphics/CMakeLists.txt
@@ -150,6 +150,10 @@ if(SFML_COMPILER_GCC)
set_source_files_properties(${SRCROOT}/ImageLoader.cpp PROPERTIES COMPILE_FLAGS -fno-strict-aliasing)
endif()
+if (SFML_COMPILER_GCC)
+ list(APPEND GRAPHICS_EXT_LIBS "-lgcc_s -lgcc")
+endif()
+
# define the sfml-graphics target
sfml_add_library(sfml-graphics
SOURCES ${SRC} ${DRAWABLES_SRC} ${RENDER_TEXTURE_SRC} ${STB_SRC}
'
patch -p1 <<< $(echo "$CSFML_PATCH")
# WARNING - END OF PATCH
cmake -DBUILD_SHARED_LIBS=False -DCMAKE_CXX_FLAGS="-fPIC" .
make
make install
cd ..
echo "CSFML Compilation"
echo $SFML_PATH
cd CSFML
cmake -DCMAKE_CXX_FLAGS="-fPIC" -DSFML_STATIC_LIBRARIES=TRUE -DBUILD_SHARED_LIBS=False -DSFML_ROOT="$SFML_PATH" -DSFML_INCLUDE_DIR="$SFML_PATH/include" -DCMAKE_MODULE_PATH="$SFML_PATH/cmake/Modules" .
LD_LIBRARY_PATH="$SFML_PATH/lib"
make
make install
cd ..
echo "Building Graphical Programming Library"
g++ -Wl,--whole-archive \
CSFML/lib/libcsfml-audio.a \
CSFML/lib/libcsfml-graphics.a \
CSFML/lib/libcsfml-system.a \
CSFML/lib/libcsfml-window.a \
CSFML/lib/libcsfml-network.a \
SFML/lib/libsfml-audio-s.a \
SFML/lib/libsfml-graphics-s.a \
SFML/lib/libsfml-system-s.a \
SFML/lib/libsfml-window-s.a \
SFML/lib/libsfml-network-s.a \
-Wl,--no-whole-archive -shared -o $GRAPH_LIB_NAME \
-lFLAC \
-lfreetype \
-lGL \
-ljpeg \
-logg \
-lopenal \
-lpthread \
-lrt \
-ludev \
-lvorbis \
-lvorbisenc \
-lvorbisfile \
-lX11 \
-lX11-xcb \
-lxcb \
-lxcb-image \
-lxcb-randr \
-lXext \
-lgcc_s \
-lgcc
cp $GRAPH_LIB_NAME /usr/local/lib/.
echo "/usr/local/lib/" > /etc/ld.so.conf.d/csfml.conf
# Update the Dynamic Linker Run Time Bindings
ldconfig
rm -rf "$CSFML_ZIP" "$CSFML_PATH" "$SFML_ZIP" "$SFML_PATH"