1
1
CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
2
+
3
+ OPTION (USE_HUNTER "Use Hunter cmake package handler" OFF )
4
+
5
+ if (USE_HUNTER)
6
+ include (${CMAKE_CURRENT_LIST_DIR} /CMakeModules/HunterGate.cmake)
7
+
8
+ HunterGate(
9
+ URL "https://github.com/ruslo/hunter/archive/v0.18.43.tar.gz"
10
+ SHA1 "d2c8c42cd07f7cefe18fd9a9b9c13114b1a15a27"
11
+ # LOCAL
12
+ )
13
+ endif ()
14
+
2
15
PROJECT (FORGE)
3
16
4
17
SET_PROPERTY (GLOBAL PROPERTY USE_FOLDERS ON )
5
18
SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR} /CMakeModules" )
6
19
INCLUDE (FGInstallDirs)
20
+ INCLUDE (Version )
7
21
8
- SET (USE_WINDOW_TOOLKIT "glfw3" CACHE STRING "Choose Window toolkit" )
9
- SET_PROPERTY (CACHE USE_WINDOW_TOOLKIT PROPERTY STRINGS "glfw3" "sdl2" )
10
22
23
+ ############################## BEGIN - CMAKE OPTIONS ##########################
11
24
OPTION (BUILD_DOCUMENTATION "Build Documentation" OFF )
12
25
OPTION (BUILD_EXAMPLES "Build Examples" ON )
13
-
14
- OPTION (USE_LOCAL_GLM "Download and use local GLM" OFF )
15
- OPTION (USE_LOCAL_FREETYPE "Download and use local freetype" OFF )
16
- MARK_AS_ADVANCED (USE_LOCAL_GLM)
17
- MARK_AS_ADVANCED (USE_LOCAL_FREETYPE)
26
+ OPTION (USE_FREEIMAGE "Use freeimage to allow saving of charts" ON )
18
27
19
28
# Set a default build type if none was specified
20
29
IF (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
@@ -23,12 +32,14 @@ IF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
23
32
SET_PROPERTY (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
24
33
"MinSizeRel" "RelWithDebInfo" )
25
34
ENDIF ()
35
+ ############################## END - CMAKE OPTIONS ##########################
26
36
37
+
38
+ ############################## BEGIN - OS Definitions #########################
27
39
IF (UNIX )
28
40
ADD_DEFINITIONS (-Wall -std=c++11 -fvisibility=hidden)
29
41
ENDIF ()
30
42
31
- # OS Definitions
32
43
IF (UNIX )
33
44
IF (APPLE )
34
45
ADD_DEFINITIONS (-DOS_MAC)
@@ -45,31 +56,27 @@ IF(UNIX)
45
56
ELSE (APPLE )
46
57
ADD_DEFINITIONS (-DOS_LNX)
47
58
ENDIF (APPLE )
59
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" )
48
60
ELSE (UNIX )
49
61
ADD_DEFINITIONS (-DOS_WIN -DNOMINMAX)
62
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} " )
50
63
ENDIF (UNIX )
64
+ ############################## END - OS Definitions ###########################
51
65
52
- INCLUDE (Version )
53
66
54
- FIND_PACKAGE (FreeImage REQUIRED)
55
- FIND_PACKAGE (OpenGL REQUIRED)
56
-
57
- INCLUDE_DIRECTORIES (
58
- "${PROJECT_SOURCE_DIR} /include"
59
- ${OPENGL_INCLUDE_DIR}
60
- ${FREEIMAGE_INCLUDE_PATH}
61
- )
67
+ INCLUDE_DIRECTORIES ("${PROJECT_SOURCE_DIR} /include" )
62
68
69
+ ## X11 libraries need to be explicitly linked on MacOS
70
+ ## This is required by both examples and the library itself
71
+ ## Hence, it is placed here.
63
72
SET (X11_LIBS "" )
64
73
IF (APPLE )
65
74
FIND_PACKAGE (X11 REQUIRED)
66
75
INCLUDE_DIRECTORIES (${X11_INCLUDE_DIR} )
67
76
SET (X11_LIBS ${X11_LIBRARIES} )
68
77
ENDIF (APPLE )
69
78
70
- ADD_EXECUTABLE (glsl2cpp "${PROJECT_SOURCE_DIR} /CMakeModules/glsl2cpp.cpp" )
71
-
72
- ADD_SUBDIRECTORY (src/backend/opengl)
79
+ ADD_SUBDIRECTORY (src/backend)
73
80
74
81
IF (BUILD_EXAMPLES)
75
82
ADD_SUBDIRECTORY (examples)
@@ -97,7 +104,7 @@ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/ForgeConfigVersion
97
104
98
105
#--------------------------------------------------------------------
99
106
# Install files other than the library, examples and docs
100
- # The library is installed by src/CMakeLists.txt
107
+ # The library is installed by src/backend/*/ CMakeLists.txt
101
108
#--------------------------------------------------------------------
102
109
INSTALL (DIRECTORY "${PROJECT_SOURCE_DIR} /include/" DESTINATION "${FG_INSTALL_INC_DIR} "
103
110
FILES_MATCHING
0 commit comments