diff options
author | Marat Dukhan <marat@fb.com> | 2018-12-16 02:34:43 -0800 |
---|---|---|
committer | Marat Dukhan <marat@fb.com> | 2018-12-16 02:34:43 -0800 |
commit | 52b2c08a310aa9f95e41b219c65d162ee754d318 (patch) | |
tree | 0455a2a0d8fbb36c07cf2472f62c17f98cfb5de8 | |
parent | ccbddb58385777e9348a085abeeaf056f214c464 (diff) | |
download | cpuinfo-52b2c08a310aa9f95e41b219c65d162ee754d318.tar.gz |
Expose logging level in configuration parameters
-rw-r--r-- | CMakeLists.txt | 26 | ||||
-rwxr-xr-x | configure.py | 6 | ||||
-rw-r--r-- | src/mach/topology.c | 2 |
3 files changed, 25 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f12a820..0413f48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,8 @@ SET(CPUINFO_LIBRARY_TYPE "default" CACHE STRING "Type of cpuinfo library (shared SET_PROPERTY(CACHE CPUINFO_LIBRARY_TYPE PROPERTY STRINGS default static shared) SET(CPUINFO_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use") SET_PROPERTY(CACHE CPUINFO_RUNTIME_TYPE PROPERTY STRINGS default static shared) +SET(CPUINFO_LOG_LEVEL "default" CACHE STRING "Minimum logging level (info with lower severity will be ignored)") +SET_PROPERTY(CACHE CPUINFO_LOG_LEVEL PROPERTY STRINGS default debug info warning error fatal none) OPTION(CPUINFO_BUILD_TOOLS "Build command-line tools" ON) OPTION(CPUINFO_BUILD_UNIT_TESTS "Build cpuinfo unit tests" ON) OPTION(CPUINFO_BUILD_MOCK_TESTS "Build cpuinfo mock tests" ON) @@ -205,12 +207,26 @@ SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h) TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include) TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src) TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src) -IF(CPUINFO_LOG_TO_STDIO) - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_TO_STDIO=1) +IF(CPUINFO_LOG_LEVEL STREQUAL "default") + # default logging level: error (subject to change) + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "debug") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=5) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "info") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "warning") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=3) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "error") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "fatal") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=1) +ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "none") + TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=0) ELSE() - TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_TO_STDIO=0) + MESSAGE(FATAL_ERROR "Unsupported logging level ${CPUINFO_LOG_LEVEL}") ENDIF() -TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0 CPUINFO_LOG_TO_STDIO=0) +TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0) + IF(CPUINFO_SUPPORTED_PLATFORM) TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1) IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") @@ -293,7 +309,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS) TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PUBLIC include) TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PRIVATE src) TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PUBLIC CPUINFO_MOCK=1) - TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE CPUINFO_LOG_TO_STDIO=1) + TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE CLOG_LOG_TO_STDIO=1) IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") TARGET_LINK_LIBRARIES(cpuinfo_mock PUBLIC ${CMAKE_THREAD_LIBS_INIT}) TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE _GNU_SOURCE=1) diff --git a/configure.py b/configure.py index ef4b27a..9ea8a32 100755 --- a/configure.py +++ b/configure.py @@ -4,7 +4,7 @@ import confu parser = confu.standard_parser("cpuinfo configuration script") parser.add_argument("--log", dest="log_level", - choices=("none", "error", "warning", "info", "debug"), default="error") + choices=("none", "fatal", "error", "warning", "info", "debug"), default="error") parser.add_argument("--mock", dest="mock", action="store_true") @@ -13,8 +13,8 @@ def main(args): build = confu.Build.from_options(options) macros = { - "CPUINFO_LOG_LEVEL": {"none": 0, "error": 1, "warning": 2, "info": 3, "debug": 4}[options.log_level], - "CPUINFO_LOG_TO_STDIO": int(not options.mock), + "CPUINFO_LOG_LEVEL": {"none": 0, "fatal": 1, "error": 2, "warning": 3, "info": 4, "debug": 5}[options.log_level], + "CLOG_LOG_TO_STDIO": int(not options.mock), "CPUINFO_MOCK": int(options.mock), } if build.target.is_linux or build.target.is_android: diff --git a/src/mach/topology.c b/src/mach/topology.c index 61868c4..614254b 100644 --- a/src/mach/topology.c +++ b/src/mach/topology.c @@ -37,7 +37,7 @@ struct cpuinfo_mach_topology cpuinfo_mach_detect_topology(void) { packages = 1; } - cpuinfo_log_info("mach topology: packages = %d, cores = %d, threads = %d", packages, (int) cores, (int) threads); + cpuinfo_log_debug("mach topology: packages = %d, cores = %d, threads = %d", packages, (int) cores, (int) threads); struct cpuinfo_mach_topology topology = { .packages = (uint32_t) packages, .cores = (uint32_t) cores, |