aboutsummaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
authorMarat Dukhan <maratek@gmail.com>2018-06-04 02:45:30 -0700
committerMarat Dukhan <maratek@gmail.com>2018-06-04 02:45:30 -0700
commitd5810e847ec60cf093a66629be32f3cb355c40d4 (patch)
tree0e3df8c35d17137a9a114a722f6ee57ce20e0af1 /deps
parentad935b502e8dadeaf533d5c7b1b0b24d264b0241 (diff)
downloadcpuinfo-d5810e847ec60cf093a66629be32f3cb355c40d4.tar.gz
Add missing CMakeLists for clog
Diffstat (limited to 'deps')
-rw-r--r--deps/clog/CMakeLists.txt79
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()