]> icculus.org git repositories - taylor/freespace2.git/blob - CMakeLists.txt
merge in updated graphics code
[taylor/freespace2.git] / CMakeLists.txt
1
2 project(freespace2)
3
4 cmake_minimum_required(VERSION 2.6)
5
6
7 include(CheckCXXCompilerFlag)
8 include(CheckCXXSourceCompiles)
9 include(CheckTypeSize)
10 include(FindPkgConfig)
11
12 pkg_search_module(SDL2 REQUIRED sdl2 >= 2.0.1)
13
14 find_package(OpenGL)
15 find_package(OpenAL)
16
17 option(FS1 "Build original FreeSpace" OFF)
18 option(DEMO "Create demo build" OFF)
19
20 if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
21   message(STATUS "Setting build type to 'Debug' as none was specified.")
22   set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
23   # Set the possible values of build type for cmake-gui
24   set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
25     "MinSizeRel" "RelWithDebInfo")
26 endif()
27
28
29 if(NOT WIN32)
30   add_definitions(-DPLAT_UNIX)
31   add_definitions(-Wall -Wno-format-y2k -Wno-deprecated)
32   add_definitions(-fsigned-char)
33
34   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG -g -O2")
35   set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -DNDEBUG -Os")
36   set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -O2")
37   set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3")
38 endif()
39
40 add_subdirectory(src)
41
42 include_directories(
43   ${PROJECT_SOURCE_DIR}/include
44   ${SDL2_INCLUDE_DIRS}
45   ${OPENAL_INCLUDE_DIR}
46 )
47
48 set(fs_SOURCE
49   src/freespace2/freespace.cpp
50   src/freespace2/levelpaging.cpp
51   src/freespace2/main.cpp
52 )
53
54 include(includes.cmake)
55
56 set(FS_BINARY freespace2)
57
58 if(FS1)
59   add_definitions(-DMAKE_FS1)
60   if(DEMO)
61     add_definitions(-DDEMO -DFS1_DEMO)
62     set(FS_BINARY freespace_demo)
63   else()
64     set(FS_BINARY freespace)
65   endif()
66 else()
67   if(DEMO)
68     add_definitions(-DFS2_DEMO)
69     set(FS_BINARY freespace2_demo)
70   else()
71     set(FS_BINARY freespace2)
72   endif()
73 endif()
74
75 add_executable(${FS_BINARY} ${fs_SOURCE} ${fs_INCLUDES})
76
77 target_link_libraries(
78   ${FS_BINARY}
79   code
80   ${SDL2_LIBRARIES}
81   ${OPENGL_LIBRARIES}
82   ${OPENAL_LIBRARY}
83 )
84
85 add_executable(cfilearchiver
86   EXCLUDE_FROM_ALL
87   src/cfilearchiver/cfilearchiver.cpp
88 )
89
90 add_executable(scramble
91   EXCLUDE_FROM_ALL
92   src/platform/unix.cpp
93   src/parse/encrypt.cpp
94   src/scramble/scramble.cpp
95 )
96
97 add_executable(cryptstring
98   EXCLUDE_FROM_ALL
99   src/cryptstring/cryptstring.cpp
100 )
101
102 add_executable(fonttool
103   EXCLUDE_FROM_ALL
104   src/fonttool/fontstubs.cpp
105   src/fonttool/fontcreate.cpp
106   src/fonttool/fontkern.cpp
107   src/fonttool/fontkerncopy.cpp
108   src/fonttool/fonttool.cpp
109 )
110
111 target_link_libraries(
112   fonttool
113   code
114   ${SDL2_LIBRARIES}
115   ${OPENGL_LIBRARIES}
116   ${OPENAL_LIBRARY}
117 )
118
119 add_custom_target(tools)
120
121 add_dependencies(tools
122   cfilearchiver
123   scramble
124   cryptstring
125   fonttool
126 )
127
128 include(custom.cmake OPTIONAL)