-
Notifications
You must be signed in to change notification settings - Fork 1
/
CMakeLists.txt
55 lines (44 loc) · 1.63 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(insurlt)
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET(CMAKE_CXX_FLAGS "-Wall -std=c++0x")
ENDIF()
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH})
FIND_PACKAGE(FCGIPP REQUIRED)
INCLUDE_DIRECTORIES(${FCGIPP_INCLUDE_DIRS})
SET(EXTRA_LIBRARIES ${FCGIPP_LIBRARIES} ${EXTRA_LIBRARIES})
FIND_PACKAGE(Sqlite3 REQUIRED)
INCLUDE_DIRECTORIES(${SQLITE3_INCLUDE_DIRS})
SET(EXTRA_LIBRARIES ${SQLITE3_LIBRARIES} ${EXTRA_LIBRARIES})
# Makes public/ directory
ADD_CUSTOM_TARGET(
public
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/public")
# Copies assets
ADD_CUSTOM_TARGET(
assets ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_SOURCE_DIR}/assets/clippy.swf
"${CMAKE_BINARY_DIR}/public/clippy.swf")
# Build source list
SET(INSURLT_FILES permgen.cpp insults.cpp database.cpp template.cpp)
# Build executable
ADD_EXECUTABLE(insurlt cgi.cpp ${INSURLT_FILES})
TARGET_LINK_LIBRARIES(insurlt ${EXTRA_LIBRARIES})
SET_TARGET_PROPERTIES(
insurlt PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/public"
OUTPUT_NAME "insurlt.fcgi")
ADD_DEPENDENCIES(insurlt public)
# Test binary
OPTION(BUILD_TESTS "Build the tests program" OFF)
IF(BUILD_TESTS)
FIND_PACKAGE(CppUnit REQUIRED)
INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIRS})
SET(TESTS_FILES test.cpp
test_permgen.cpp test_insults.cpp test_database.cpp test_template.cpp
${INSURLT_FILES})
ADD_EXECUTABLE(tests ${TESTS_FILES})
TARGET_LINK_LIBRARIES(tests ${EXTRA_LIBRARIES} ${CPPUNIT_LIBRARIES})
ENDIF()