aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt53
1 files changed, 31 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ff55a80..1228e82 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,21 +14,20 @@ project(ck C)
set(ck_MAJOR_VERSION 0)
set(ck_MINOR_VERSION 4)
-# compiler
-set(CMAKE_C_COMPILER clang)
-
-# compiler flags
-
# options
option(CK_ASAN "Build with asan")
-option(CK_RELEASE "Release build")
+option(CK_DEBUG "Build with debug symbols")
+option(CK_TESTS "Make the tests")
+option(CK_SHARED "Build with shared lib")
if(CK_ASAN)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
endif()
-if (NOT CK_RELEASE)
+if (CK_DEBUG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
+else(CK_DEBUG)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
endif()
# Set project directories
@@ -79,26 +78,36 @@ include_directories(${PROJECT_BINARY_DIR})
include_directories(${CMAKE_BINARY_DIR})
include_directories(${SQLITE3_INCLUDE_DIRS})
-# Create the shared library
-add_library (ckLib SHARED
+# Create the library (static by default)
+if (CK_SHARED)
+ add_library (ckLib SHARED
+ ${ckLib_src}
+ ${ckLib_hdr}
+ )
+else(CK_SHARED)
+ add_library (ckLib STATIC
${ckLib_src}
${ckLib_hdr}
-)
+ )
+endif()
# Link
add_executable(ck ${ckBin_src})
target_link_libraries(ck ckLib)
target_link_libraries(ck ${SQLITE3_LIBRARIES})
-## unit test
-add_executable(ck-test ${ckUnitTest_src})
-target_link_libraries(ck-test ckLib)
-target_link_libraries(ck-test ${SQLITE3_LIBRARIES})
-# copy test files
-set(BIN_TESTS_DIR ${CMAKE_BINARY_DIR}/res/tests)
-set(PROJECT_TESTING_GROUNDS ${CMAKE_BINARY_DIR}/test_files)
-configure_file(${TESTS_DIR}/init ${BIN_TESTS_DIR}/init @ONLY)
-configure_file(${TESTS_DIR}/add ${BIN_TESTS_DIR}/add @ONLY)
-configure_file(${TESTS_DIR}/list ${BIN_TESTS_DIR}/list @ONLY)
-# check_ck
-configure_file(${RES_DIR}/check_ck check_ck @ONLY)
+if (CK_TESTS)
+ ## unit test
+ add_executable(ck-test ${ckUnitTest_src})
+ target_link_libraries(ck-test ckLib)
+ target_link_libraries(ck-test ${SQLITE3_LIBRARIES})
+
+ # copy test files
+ set(BIN_TESTS_DIR ${CMAKE_BINARY_DIR}/res/tests)
+ set(PROJECT_TESTING_GROUNDS ${CMAKE_BINARY_DIR}/test_files)
+ configure_file(${TESTS_DIR}/init ${BIN_TESTS_DIR}/init @ONLY)
+ configure_file(${TESTS_DIR}/add ${BIN_TESTS_DIR}/add @ONLY)
+ configure_file(${TESTS_DIR}/list ${BIN_TESTS_DIR}/list @ONLY)
+ # check_ck
+ configure_file(${RES_DIR}/check_ck check_ck @ONLY)
+endif()