- NULL/nullptr replacing done
[tinns.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED  (VERSION 3.0)
2 PROJECT                 (TinNS)
3
4 # needed packages
5 SET                     (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules")
6 FIND_PACKAGE            (RT REQUIRED)
7 FIND_PACKAGE            (PTHREAD REQUIRED)
8 FIND_PACKAGE            (MYSQL REQUIRED)
9 FIND_PACKAGE            (SQLITE3 REQUIRED)
10 FIND_PACKAGE            (PCRE REQUIRED)
11 FIND_PACKAGE            (ZLIB REQUIRED)
12 FIND_PACKAGE            (Lua53 REQUIRED) # the lua distributions are a nightmare, here is my finder for 5.3
13
14 # includes and outputs
15 SET                     (CMAKE_INCLUDE_CURRENT_DIR on)
16 INCLUDE_DIRECTORIES     (${PROJECT_SOURCE_DIR})
17 SET                     (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
18 SET                     (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/plugin)
19 SET                     (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
20
21 # default configs
22 SET                     (USE_SQLITE3 false CACHE BOOL "Use SQLITE3 instead of MySQL")
23 SET                     (USE_MYSQL_INCLUDE_DIR true CACHE BOOL "MySQL includes in system path")
24
25 IF                      (USE_SQLITE3)
26 ADD_DEFINITIONS             (-DSQLITE3)
27 ENDIF                   (USE_SQLITE3)
28
29 IF                      (USE_MYSQL_INCLUDE_DIR)
30 ADD_DEFINITIONS             (-DMYSQL_INC_DIR)
31 ENDIF                   (USE_MYSQL_INCLUDE_DIR)
32
33 # compiler settings
34 IF                      (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
35 MESSAGE                     ("Unix-like system: ${CMAKE_SYSTEM_NAME}")
36 SET                         (CMAKE_CXX_FLAGS "-std=c++14 -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os")
37 SET                         (CMAKE_C_FLAGS "-std=c11 -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os")
38 ELSEIF                  (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
39 MESSAGE                     ("Windows-like system: ${CMAKE_SYSTEM_NAME}")
40 SET                         (CMAKE_CXX_FLAGS "-std=c++14 -pthread -W -Wall -Wextra -Os")
41 SET                         (CMAKE_C_FLAGS "-std=c11 -pthread -W -Wall -Wextra -Os")
42 ELSE                    ()
43 MESSAGE                     (FATAL_ERROR "unsupported system: ${CMAKE_SYSTEM_NAME}")
44 ENDIF                   ()
45
46 # source code stuff starts here
47 ADD_SUBDIRECTORY        (TinNS)
48 ADD_SUBDIRECTORY        (Tools)