diff options
author | Marat Dukhan <maratek@gmail.com> | 2018-06-04 02:45:30 -0700 |
---|---|---|
committer | Marat Dukhan <maratek@gmail.com> | 2018-06-04 02:45:30 -0700 |
commit | d5810e847ec60cf093a66629be32f3cb355c40d4 (patch) | |
tree | 0e3df8c35d17137a9a114a722f6ee57ce20e0af1 /deps | |
parent | ad935b502e8dadeaf533d5c7b1b0b24d264b0241 (diff) | |
download | cpuinfo-d5810e847ec60cf093a66629be32f3cb355c40d4.tar.gz |
Add missing CMakeLists for clog
Diffstat (limited to 'deps')
-rw-r--r-- | deps/clog/CMakeLists.txt | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/deps/clog/CMakeLists.txt b/deps/clog/CMakeLists.txt new file mode 100644 index 0000000..fe2b69f --- /dev/null +++ b/deps/clog/CMakeLists.txt @@ -0,0 +1,79 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR) + +INCLUDE(GNUInstallDirs) + +# ---[ Project and semantic versioning. +PROJECT(clog C CXX) + +# ---[ Options. +SET(CLOG_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use") +SET_PROPERTY(CACHE CLOG_RUNTIME_TYPE PROPERTY STRINGS default static shared) +IF(ANDROID) + OPTION(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" OFF) +ELSE() + OPTION(CLOG_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" ON) +ENDIF() +OPTION(CLOG_BUILD_TESTS "Build clog tests" ON) + +# ---[ CMake options +IF(CLOG_BUILD_TESTS) + ENABLE_TESTING() +ENDIF() + +MACRO(CLOG_TARGET_RUNTIME_LIBRARY target) + IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "default") + IF(CLOG_RUNTIME_TYPE STREQUAL "shared") + TARGET_COMPILE_OPTIONS(${target} PRIVATE + "/MD$<$<CONFIG:Debug>:d>") + ELSEIF(CLOG_RUNTIME_TYPE STREQUAL "static") + TARGET_COMPILE_OPTIONS(${target} PRIVATE + "/MT$<$<CONFIG:Debug>:d>") + ENDIF() + ENDIF() +ENDMACRO() + +# ---[ Download deps +SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps + CACHE PATH "Confu-style dependencies source directory") +SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps + CACHE PATH "Confu-style dependencies binary directory") + +IF(CLOG_BUILD_TESTS) + IF(NOT DEFINED GOOGLETEST_SOURCE_DIR) + MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") + SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory") + ENDIF() +ENDIF() + +# ---[ clog library +ADD_LIBRARY(clog STATIC src/clog.c) +SET_TARGET_PROPERTIES(clog PROPERTIES + C_STANDARD 99 + C_EXTENSIONS NO) +CLOG_TARGET_RUNTIME_LIBRARY(clog) +SET_TARGET_PROPERTIES(clog PROPERTIES PUBLIC_HEADER include/clog.h) +TARGET_INCLUDE_DIRECTORIES(clog BEFORE PUBLIC include) +IF(CLOG_LOG_TO_STDIO) + TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=1) +ELSE() + TARGET_COMPILE_DEFINITIONS(clog PRIVATE CLOG_LOG_TO_STDIO=0) +ENDIF() +IF(ANDROID AND NOT CLOG_LOG_TO_STDIO) + TARGET_LINK_LIBRARIES(clog PRIVATE log) +ENDIF() + +# ---[ clog tests +IF(CLOG_BUILD_UNIT_TESTS) + ADD_EXECUTABLE(clog-test test/clog.cc) + SET_TARGET_PROPERTIES(clog-test PROPERTIES + CXX_STANDARD 11 + CXX_EXTENSIONS NO) + CLOG_TARGET_RUNTIME_LIBRARY(clog-test) + TARGET_LINK_LIBRARIES(clog-test PRIVATE clog gtest) + ADD_TEST(clog-test clog-test) +ENDIF() |