From 0c1db35f352dcfab8bc0faf324fbcfddf0967933 Mon Sep 17 00:00:00 2001 From: Arugula Bowl Date: Mon, 9 Jul 2018 21:31:57 +0000 Subject: [PATCH] Start modernizing cmake code --- CMakeLists.txt | 56 ++++++++++++++++++++---------------- ed25519-donna/CMakeLists.txt | 4 ++- rai/rai_node/CMakeLists.txt | 2 +- rai/secure/CMakeLists.txt | 3 +- 4 files changed, 36 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 787012b1..39bd70ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ set (CPACK_PACKAGE_VERSION_MAJOR "15") set (CPACK_PACKAGE_VERSION_MINOR "0") set (CPACK_PACKAGE_VERSION_PATCH "0") if (DEFINED GIT_COMMIT) -set (CPACK_PACKAGE_VERSION_PATCH "GIT-${GIT_COMMIT}") + set (CPACK_PACKAGE_VERSION_PATCH "GIT-${GIT_COMMIT}") endif (DEFINED GIT_COMMIT) set (CPACK_PACKAGE_VENDOR "Nano Currency") @@ -32,33 +32,41 @@ if(WIN32) endif() endif() +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + if (WIN32) - set (PLATFORM_COMPILE_FLAGS "-DBOOST_SPIRIT_THREADSAFE -D_WIN32_WINNT=0x0600 -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN -DMINIUPNP_STATICLIB") + add_definitions(-D_WIN32_WINNT=0x0600 + -DWINVER=0x0600 + -DWIN32_LEAN_AND_MEAN + -DMINIUPNP_STATICLIB) set (BLAKE2_IMPLEMENTATION "blake2/blake2b.c") else (WIN32) - set (PLATFORM_COMPILE_FLAGS "-DBOOST_SPIRIT_THREADSAFE -Werror=switch -fPIC") + add_compile_options(-Werror=switch) if (RAIBLOCKS_ASAN) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=address,undefined -DED25519_NO_INLINE_ASM") + add_compile_options(-fsanitize=address,undefined) + add_definitions(-DED25519_NO_INLINE_ASM) elseif (RAIBLOCKS_ASAN_INT) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=address,undefined,integer -DED25519_NO_INLINE_ASM") + add_compile_options(-fsanitize=address,undefined,integer) + add_definitions(-DED25519_NO_INLINE_ASM) elseif (RAIBLOCKS_TSAN) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=thread -DED25519_NO_INLINE_ASM") + add_compile_options(-fsanitize=thread) + add_definitions(-DED25519_NO_INLINE_ASM) endif() IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$") if (RAIBLOCKS_SIMD_OPTIMIZATIONS) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -msse4") + add_compile_options(-msse4) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -msse2") + add_compile_options(-msse2) endif() set (BLAKE2_IMPLEMENTATION "blake2/blake2b.c") if (ENABLE_AVX2) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -mavx2 -mbmi -mbmi2") + add_compile_options(-mavx2 -mbmi -mbmi2) if (PERMUTE_WITH_GATHER) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -DPERMUTE_WITH_GATHER") + add_definitions(-DPERMUTE_WITH_GATHER) elseif (PERMUTE_WITH_SHUFFLES) - set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -DPERMUTE_WITH_SHUFFLES") + add_definitions(-DPERMUTE_WITH_SHUFFLES) endif() endif() else() @@ -66,16 +74,16 @@ else (WIN32) endif() endif (WIN32) -if (WIN32) - set (PLATFORM_C_FLAGS "/std=c11") -else (WIN32) - set (PLATFORM_C_FLAGS "-std=c11") -endif (WIN32) +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS OFF) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) if (WIN32) - set (PLATFORM_CXX_FLAGS "/bigobj") -else (WIN32) - set (PLATFORM_CXX_FLAGS "-std=c++14") + add_definitions(/bigobj) endif (WIN32) if (APPLE) @@ -192,7 +200,6 @@ if (CRYPTOPP_CUSTOM OR NOT RAIBLOCKS_SIMD_OPTIMIZATIONS) cryptopp/sha.cpp cryptopp/simple.cpp cryptopp/winpipes.cpp) - set_target_properties (cryptopp PROPERTIES COMPILE_FLAGS "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS}") else () set (CRYPTOPP_LIBRARY cryptopp-static) add_subdirectory (cryptopp) @@ -259,7 +266,7 @@ if (RAIBLOCKS_TEST) add_executable (slow_test rai/slow_test/node.cpp) - set_target_properties (core_test slow_test PROPERTIES COMPILE_FLAGS "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") + set_target_properties (core_test slow_test PROPERTIES COMPILE_FLAGS "-DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") # TODO: Do globally set_target_properties (core_test slow_test PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}") endif (RAIBLOCKS_TEST) @@ -310,7 +317,7 @@ if (RAIBLOCKS_GUI) # TODO: Do globally set_target_properties (nano_wallet qt_test PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}") - set_target_properties (qt_test qt nano_wallet qt_system PROPERTIES COMPILE_FLAGS "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") + set_target_properties (qt_test qt nano_wallet qt_system PROPERTIES COMPILE_FLAGS "-DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") # TODO: Do globally set_target_properties (qt qt_system PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}") @@ -367,9 +374,8 @@ endif (RAIBLOCKS_GUI) add_subdirectory(rai/rai_node) -set_target_properties (argon2 PROPERTIES COMPILE_FLAGS "${PLATFORM_C_FLAGS} ${PLATFORM_COMPILE_FLAGS}") -set_target_properties (blake2 PROPERTIES COMPILE_FLAGS "${PLATFORM_C_FLAGS} ${PLATFORM_COMPILE_FLAGS} -D__SSE2__") -set_target_properties (node rai_lib rai_lib_static PROPERTIES COMPILE_FLAGS "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") +target_compile_definitions(blake2 PRIVATE -D__SSE2__) +set_target_properties (node rai_lib rai_lib_static PROPERTIES COMPILE_FLAGS "-DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") # TODO: Do globally set_target_properties (node PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}") diff --git a/ed25519-donna/CMakeLists.txt b/ed25519-donna/CMakeLists.txt index 9fe7f3f9..8966c472 100644 --- a/ed25519-donna/CMakeLists.txt +++ b/ed25519-donna/CMakeLists.txt @@ -5,4 +5,6 @@ add_library (ed25519 ed25519.h ed25519.c) -set_target_properties (ed25519 PROPERTIES COMPILE_FLAGS "${PLATFORM_C_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DED25519_CUSTOMHASH -DED25519_CUSTOMRNG") +target_compile_definitions(ed25519 PUBLIC + -DED25519_CUSTOMHASH + -DED25519_CUSTOMRNG) diff --git a/rai/rai_node/CMakeLists.txt b/rai/rai_node/CMakeLists.txt index a1bc4c99..4392e0c5 100644 --- a/rai/rai_node/CMakeLists.txt +++ b/rai/rai_node/CMakeLists.txt @@ -13,6 +13,6 @@ target_link_libraries (rai_node set_target_properties (rai_node PROPERTIES COMPILE_FLAGS - "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") + "-DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") # TODO: Do globally set_target_properties (rai_node PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}") diff --git a/rai/secure/CMakeLists.txt b/rai/secure/CMakeLists.txt index 7c61aa9c..092a3578 100644 --- a/rai/secure/CMakeLists.txt +++ b/rai/secure/CMakeLists.txt @@ -36,9 +36,8 @@ add_library (secure target_link_libraries(secure Boost::boost) -# TODO: Do globally set_target_properties (secure PROPERTIES - COMPILE_FLAGS "${PLATFORM_CXX_FLAGS} ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") + COMPILE_FLAGS "-DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DRAIBLOCKS_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR} -DRAIBLOCKS_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR} -DBOOST_ASIO_HAS_STD_ARRAY=1") # TODO: Do globally set_target_properties (secure PROPERTIES LINK_FLAGS "${PLATFORM_LINK_FLAGS}")