diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d16e8cd..6861e36e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -199,49 +199,25 @@ endif() # --------------------------------------------------------------------------------------- # Misc definitions according to tweak options # --------------------------------------------------------------------------------------- -if(SPDLOG_WCHAR_SUPPORT) - target_compile_definitions(spdlog PUBLIC SPDLOG_WCHAR_TO_UTF8_SUPPORT) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_WCHAR_TO_UTF8_SUPPORT) -endif() - -if(SPDLOG_WCHAR_FILENAMES) - target_compile_definitions(spdlog PUBLIC SPDLOG_WCHAR_FILENAMES) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_WCHAR_FILENAMES) -endif() - -if(SPDLOG_NO_EXCEPTIONS) - target_compile_definitions(spdlog PUBLIC SPDLOG_NO_EXCEPTIONS) - - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_NO_EXCEPTIONS) - - if(NOT MSVC) - target_compile_options(spdlog PRIVATE -fno-exceptions) +set(SPDLOG_WCHAR_TO_UTF8_SUPPORT ${SPDLOG_WCHAR_SUPPORT}) +foreach(SPDLOG_OPTION + SPDLOG_WCHAR_TO_UTF8_SUPPORT + SPDLOG_WCHAR_FILENAMES + SPDLOG_NO_EXCEPTIONS + SPDLOG_CLOCK_COARSE + SPDLOG_PREVENT_CHILD_FD + SPDLOG_NO_THREAD_ID + SPDLOG_NO_TLS + SPDLOG_NO_ATOMIC_LEVELS +) + if(${SPDLOG_OPTION}) + target_compile_definitions(spdlog PUBLIC ${SPDLOG_OPTION}) + target_compile_definitions(spdlog_header_only INTERFACE ${SPDLOG_OPTION}) endif() -endif() +endforeach() -if(SPDLOG_CLOCK_COARSE) - target_compile_definitions(spdlog PRIVATE SPDLOG_CLOCK_COARSE) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_CLOCK_COARSE) -endif() - -if(SPDLOG_PREVENT_CHILD_FD) - target_compile_definitions(spdlog PRIVATE SPDLOG_PREVENT_CHILD_FD) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_PREVENT_CHILD_FD) -endif() - -if(SPDLOG_NO_THREAD_ID) - target_compile_definitions(spdlog PRIVATE SPDLOG_NO_THREAD_ID) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_NO_THREAD_ID) -endif() - -if(SPDLOG_NO_TLS) - target_compile_definitions(spdlog PRIVATE SPDLOG_NO_TLS) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_NO_TLS) -endif() - -if(SPDLOG_NO_ATOMIC_LEVELS) - target_compile_definitions(spdlog PUBLIC SPDLOG_NO_ATOMIC_LEVELS) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_NO_ATOMIC_LEVELS) +if(SPDLOG_NO_EXCEPTIONS AND NOT MSVC) + target_compile_options(spdlog PRIVATE -fno-exceptions) endif() # ---------------------------------------------------------------------------------------