1 CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
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
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)
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")
26 ADD_DEFINITIONS (-DSQLITE3)
29 IF (USE_MYSQL_INCLUDE_DIR)
30 ADD_DEFINITIONS (-DMYSQL_INC_DIR)
31 ENDIF (USE_MYSQL_INCLUDE_DIR)
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")
43 MESSAGE (FATAL_ERROR "unsupported system: ${CMAKE_SYSTEM_NAME}")
46 # source code stuff starts here
47 ADD_SUBDIRECTORY (TinNS)
48 ADD_SUBDIRECTORY (Tools)