1
1
# All sorts of things that we need cross project
2
2
cmake_minimum_required (VERSION 2.8.0)
3
3
4
+ set (WITH_SYSTEM_GLFW OFF CACHE STRING "Link raylib against system GLFW instead of embedded one" )
5
+ set_property (CACHE WITH_SYSTEM_GLFW PROPERTY STRINGS ON OFF IF_POSSIBLE)
6
+
4
7
# Linking for OS X -framework options
5
8
# Will do nothing on other OSes
6
9
if (APPLE )
@@ -27,24 +30,59 @@ else()
27
30
find_library (XINERAMA_LIBRARY Xinerama)
28
31
find_library (XXF86VM_LIBRARY Xxf86vm)
29
32
find_library (XCURSOR_LIBRARY Xcursor)
30
-
31
33
include_directories (${OPENGL_INCLUDE_DIR} )
32
34
33
35
set (LIBS_PRIVATE m ${pthread} ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${XRANDR_LIBRARY} ${XINERAMA_LIBRARY} ${XI_LIBRARY} ${XXF86VM_LIBRARY} ${XCURSOR_LIBRARY} )
34
36
endif ()
35
37
endif ()
36
38
39
+ if (WITH_SYSTEM_GLFW STREQUAL "ON" )
40
+ find_package (glfw3 3.2.1 REQUIRED)
41
+ else (WITH_SYSTEM_GLFW STREQUAL "IF_POSSIBLE" )
42
+ find_package (glfw3 3.2.1)
43
+ endif ()
44
+ if (glfw3_FOUND)
45
+ set (LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
46
+ endif ()
47
+
48
+
37
49
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
38
50
set (LINUX TRUE )
39
51
set (LIBS_PRIVATE dl ${LIBS_PRIVATE} )
40
52
endif ()
41
53
54
+ foreach (L ${LIBS_PRIVATE} )
55
+ get_filename_component (DIR ${L} PATH )
56
+ get_filename_component (LIBFILE ${L} NAME_WE )
57
+ STRING (REGEX REPLACE "^lib" "" FILE ${LIBFILE} )
58
+
59
+ if (${L} MATCHES "[.]framework$" )
60
+ set (FILE_OPT "-framework ${FILE} " )
61
+ set (DIR_OPT "-F${DIR} " )
62
+ else ()
63
+ set (FILE_OPT "-l${FILE} " )
64
+ set (DIR_OPT "-L${DIR} " )
65
+ endif ()
66
+
67
+ if ("${DIR} " STREQUAL "" OR "${DIR} " STREQUAL "${LASTDIR} " )
68
+ set (DIR_OPT "" )
69
+ endif ()
70
+
71
+ set (LASTDIR ${DIR} )
72
+
73
+ set (PKG_CONFIG_LIBS_PRIVATE ${PKG_CONFIG_LIBS_PRIVATE} ${DIR_OPT} ${FILE_OPT} )
74
+ string (REPLACE ";" " " PKG_CONFIG_LIBS_PRIVATE "${PKG_CONFIG_LIBS_PRIVATE} " )
75
+ endforeach (L)
76
+
77
+
78
+
42
79
# Do the linking for executables that are meant to link raylib
43
80
function (link_libraries_to_executable executable)
44
- # And raylib
45
- target_link_libraries (${executable} raylib)
46
-
47
- # Link the libraries
48
- target_link_libraries (${executable} ${LIBS_PRIVATE} )
81
+ # Link raylib
82
+ if (TARGET raylib_shared)
83
+ target_link_libraries (${executable} raylib_shared)
84
+ else ()
85
+ target_link_libraries (${executable} raylib ${PKG_CONFIG_LIBS_PRIVATE} )
86
+ endif ()
49
87
endfunction ()
50
88
0 commit comments