CMAKE_MINIMUM_REQUIRED (VERSION 3.0) PROJECT (TinNS) # needed packages SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules") FIND_PACKAGE (RT REQUIRED) FIND_PACKAGE (PTHREAD REQUIRED) FIND_PACKAGE (MYSQL REQUIRED) FIND_PACKAGE (SQLITE3 REQUIRED) FIND_PACKAGE (PCRE REQUIRED) FIND_PACKAGE (ZLIB REQUIRED) FIND_PACKAGE (Lua53 REQUIRED) # the lua distributions are a nightmare, here is my finder for 5.3 # includes and outputs SET (CMAKE_INCLUDE_CURRENT_DIR on) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}) SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/plugin) SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) # default configs SET (USE_SQLITE3 false CACHE BOOL "Use SQLITE3 instead of MySQL") SET (USE_MYSQL_INCLUDE_DIR true CACHE BOOL "MySQL includes in system path") IF (USE_SQLITE3) ADD_DEFINITIONS (-DSQLITE3) ENDIF (USE_SQLITE3) IF (USE_MYSQL_INCLUDE_DIR) ADD_DEFINITIONS (-DMYSQL_INC_DIR) ENDIF (USE_MYSQL_INCLUDE_DIR) # compiler settings IF (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") MESSAGE ("Unix-like system: ${CMAKE_SYSTEM_NAME}") SET (CMAKE_CXX_FLAGS "-std=c++14 -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os") SET (CMAKE_C_FLAGS "-std=c11 -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os") ELSEIF (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") MESSAGE ("Windows-like system: ${CMAKE_SYSTEM_NAME}") SET (CMAKE_CXX_FLAGS "-std=c++14 -pthread -W -Wall -Wextra -Os") SET (CMAKE_C_FLAGS "-std=c11 -pthread -W -Wall -Wextra -Os") ELSE () MESSAGE (FATAL_ERROR "unsupported system: ${CMAKE_SYSTEM_NAME}") ENDIF () # source code stuff starts here ADD_SUBDIRECTORY (TinNS) ADD_SUBDIRECTORY (Tools)