From 96eb9c99ddfbd5e61b536eff04f2938de2ff5600 Mon Sep 17 00:00:00 2001 From: modeco80 Date: Mon, 21 Aug 2023 20:58:16 -0400 Subject: [PATCH] lets just do that --- cmake/ProjectFuncs.cmake | 92 +++++++++++++++++++++------------------- src/main.cpp | 2 +- 2 files changed, 49 insertions(+), 45 deletions(-) diff --git a/cmake/ProjectFuncs.cmake b/cmake/ProjectFuncs.cmake index 40550b4..218b502 100644 --- a/cmake/ProjectFuncs.cmake +++ b/cmake/ProjectFuncs.cmake @@ -10,52 +10,54 @@ function(ssxtools_target target) target_compile_features(${target} PUBLIC cxx_std_20) # some sane compiler flags - set(_CORE_COMPILE_ARGS -Wall -Wextra) - set(_CORE_LINKER_ARGS "") + if(NOT WIN32) + set(_CORE_COMPILE_ARGS -Wall -Wextra) + set(_CORE_LINKER_ARGS "") - if("${CMAKE_BUILD_TYPE}" STREQUAL "Release") - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -Werror) + if("${CMAKE_BUILD_TYPE}" STREQUAL "Release") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -Werror) - # If on Release use link-time optimizations. - # On clang we use ThinLTO for even better build performance. - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -flto=thin) - set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -flto=thin) - target_link_options(${target} PRIVATE -fuse-ld=${SSXTOOLS_LINKER} -flto=thin) - else() - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -flto) - set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -flto) - target_link_options(${target} PRIVATE -fuse-ld=${SSXTOOLS_LINKER} -flto) - endif() + # If on Release use link-time optimizations. + # On clang we use ThinLTO for even better build performance. + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -flto=thin) + set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -flto=thin) + target_link_options(${target} PRIVATE -fuse-ld=${SSXTOOLS_LINKER} -flto=thin) + else("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -flto) + set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -flto) + target_link_options(${target} PRIVATE -fuse-ld=${SSXTOOLS_LINKER} -flto) + endif() - endif() + endif() - if("asan" IN_LIST SSXTOOLS_BUILD_FEATURES) - # Error if someone's trying to mix asan and tsan together, - # they aren't compatible. - if("tsan" IN_LIST SSXTOOLS_BUILD_FEATURES) - message(FATAL_ERROR "ASAN and TSAN cannot be used together.") - endif() + if("asan" IN_LIST SSXTOOLS_BUILD_FEATURES) + # Error if someone's trying to mix asan and tsan together, + # they aren't compatible. + if("tsan" IN_LIST SSXTOOLS_BUILD_FEATURES) + message(FATAL_ERROR "ASAN and TSAN cannot be used together.") + endif() - message(STATUS "Enabling ASAN for target ${target}") - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=address) - set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=address) - endif() + message(STATUS "Enabling ASAN for target ${target}") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=address) + set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=address) + endif() - if("tsan" IN_LIST SSXTOOLS_BUILD_FEATURES) - message(STATUS "Enabling TSAN for target ${target}") - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=thread) - set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=thread) - endif() + if("tsan" IN_LIST SSXTOOLS_BUILD_FEATURES) + message(STATUS "Enabling TSAN for target ${target}") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=thread) + set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=thread) + endif() - if("ubsan" IN_LIST SSXTOOLS_BUILD_FEATURES) - message(STATUS "Enabling UBSAN for target ${target}") - set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=undefined) - set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=undefined) - endif() + if("ubsan" IN_LIST SSXTOOLS_BUILD_FEATURES) + message(STATUS "Enabling UBSAN for target ${target}") + set(_CORE_COMPILE_ARGS ${_CORE_COMPILE_ARGS} -fsanitize=undefined) + set(_CORE_LINKER_ARGS ${_CORE_LINKER_ARGS} -fsanitize=undefined) + endif() - target_compile_options(${target} PRIVATE ${_CORE_COMPILE_ARGS}) - target_link_options(${target} PRIVATE ${_CORE_LINKER_ARGS}) + target_compile_options(${target} PRIVATE ${_CORE_COMPILE_ARGS}) + target_link_options(${target} PRIVATE ${_CORE_LINKER_ARGS}) + endif() endfunction() function(ssxtools_header_only_target target) @@ -64,10 +66,12 @@ function(ssxtools_header_only_target target) endfunction() function(ssxtools_set_alternate_linker) - find_program(LINKER_EXECUTABLE ld.${SSXTOOLS_LINKER} ${SSXTOOLS_LINKER}) - if(LINKER_EXECUTABLE) - message(STATUS "Using ${SSXTOOLS_LINKER} as linker for ssxtools projects") - else() - message(FATAL_ERROR "Linker ${SSXTOOLS_LINKER} does not exist on your system. Please specify one which does or omit this option from your configure command.") - endif() + if(NOT WIN32) + find_program(LINKER_EXECUTABLE ld.${SSXTOOLS_LINKER} ${SSXTOOLS_LINKER}) + if(LINKER_EXECUTABLE) + message(STATUS "Using ${SSXTOOLS_LINKER} as linker for ssxtools projects") + else() + message(FATAL_ERROR "Linker ${SSXTOOLS_LINKER} does not exist on your system. Please specify one which does or omit this option from your configure command.") + endif() + endif() endfunction() diff --git a/src/main.cpp b/src/main.cpp index d0a96d4..73115f6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -97,7 +97,7 @@ void ThreadFunction(char prefix) { } #endif } -int main(int argc, char** argv) { +int main() { asio::io_context ioc; asio::thread_pool pool(26);