cmake: reindent;add vim modeline
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
5ad8e610a4
commit
04e088c07f
295
CMakeLists.txt
295
CMakeLists.txt
|
@ -30,177 +30,178 @@ add_subdirectory(lib/fmt EXCLUDE_FROM_ALL)
|
|||
add_subdirectory(lib/fmtlog EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(lib/da_threading EXCLUDE_FROM_ALL)
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
|
||||
if(TIDY)
|
||||
message(STATUS "TIDY=ON, running clang-tidy")
|
||||
set(CMAKE_CXX_CLANG_TIDY clang-tidy -p ${CMAKE_CURRENT_BINARY_DIR} --checks=-*,clang-diagnostic-*,clang-analyzer-*,google-*,bugprone-* --header-filter= --use-color=true)
|
||||
message(STATUS "CMAKE_CXX_CLANG_TIDY: ${CMAKE_CXX_CLANG_TIDY}")
|
||||
endif()
|
||||
if(TIDY)
|
||||
message(STATUS "TIDY=ON, running clang-tidy")
|
||||
set(CMAKE_CXX_CLANG_TIDY clang-tidy -p ${CMAKE_CURRENT_BINARY_DIR} --checks=-*,clang-diagnostic-*,clang-analyzer-*,google-*,bugprone-* --header-filter= --use-color=true)
|
||||
message(STATUS "CMAKE_CXX_CLANG_TIDY: ${CMAKE_CXX_CLANG_TIDY}")
|
||||
endif()
|
||||
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -grecord-gcc-switches")
|
||||
endif()
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -grecord-gcc-switches")
|
||||
endif()
|
||||
|
||||
# Produce debugging information in the operating system's native format.
|
||||
# Level 3 includes extra information, such as all the macro definitions
|
||||
# present in the program. Some debuggers support macro expansion when you
|
||||
# use -g3
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-g")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-g")
|
||||
# Produce debugging information in the operating system's native format.
|
||||
# Level 3 includes extra information, such as all the macro definitions
|
||||
# present in the program. Some debuggers support macro expansion when you
|
||||
# use -g3
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-g")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-g")
|
||||
|
||||
# Optimize debugging experience. -Og should be the optimization level of
|
||||
# choice for the standard edit-compile-debug cycle, offering a reasonable
|
||||
# level of optimization while maintaining fast compilation and a good
|
||||
# debugging experience. It is a better choice than -O0 for producing
|
||||
# debuggable code because some compiler passes that collect debug
|
||||
# information are disabled at -O0.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Og")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Og")
|
||||
# Optimize debugging experience. -Og should be the optimization level of
|
||||
# choice for the standard edit-compile-debug cycle, offering a reasonable
|
||||
# level of optimization while maintaining fast compilation and a good
|
||||
# debugging experience. It is a better choice than -O0 for producing
|
||||
# debuggable code because some compiler passes that collect debug
|
||||
# information are disabled at -O0.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Og")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Og")
|
||||
|
||||
if(NOT VALGRIND)
|
||||
if(SAN)
|
||||
message(STATUS "SAN=ON, building with sanitize flags")
|
||||
# this needs {libasan,liblsan,libubsan} on fedora, gcc-libs on arch
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak") # issue with gdb
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-compare")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-subtract")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=vla-bound")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize-address-use-after-scope")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-clash-protection")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=bounds")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=vptr")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=enum")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=signed-integer-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=null")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=return")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=integer-divide-by-zero")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=float-cast-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=unreachable")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=alignment")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=object-size")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fsanitize=address" OR "-fsanitize=leak")
|
||||
# clang-only atm
|
||||
# also doesn't like asan, leaksan et al.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=safe-stack")
|
||||
endif()
|
||||
if(NOT VALGRIND)
|
||||
if(SAN)
|
||||
message(STATUS "SAN=ON, building with sanitize flags")
|
||||
# this needs {libasan,liblsan,libubsan} on fedora, gcc-libs on arch
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak") # issue with gdb
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-compare")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-subtract")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=vla-bound")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize-address-use-after-scope")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-clash-protection")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=bounds")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=vptr")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=pointer-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=enum")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=signed-integer-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=null")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=return")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=integer-divide-by-zero")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=float-cast-overflow")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=unreachable")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=alignment")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=object-size")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fsanitize=address" OR "-fsanitize=leak")
|
||||
# clang-only atm
|
||||
# also doesn't like asan, leaksan et al.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=safe-stack")
|
||||
endif()
|
||||
endif(SAN)
|
||||
endif()
|
||||
endif(SAN)
|
||||
|
||||
|
||||
# If DWARF debugging information is enabled, separate as much debugging
|
||||
# information as possible into a separate output file with the extension
|
||||
# .dwo. This option allows the build system to avoid linking files with
|
||||
# debug information.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-gsplit-dwarf")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-gsplit-dwarf")
|
||||
else()
|
||||
message(STATUS "VALGRIND=ON, not setting '-gsplit-dwarf'")
|
||||
endif(NOT VALGRIND)
|
||||
# If DWARF debugging information is enabled, separate as much debugging
|
||||
# information as possible into a separate output file with the extension
|
||||
# .dwo. This option allows the build system to avoid linking files with
|
||||
# debug information.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-gsplit-dwarf")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-gsplit-dwarf")
|
||||
else()
|
||||
message(STATUS "VALGRIND=ON, not setting '-gsplit-dwarf'")
|
||||
endif(NOT VALGRIND)
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wextra")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wextra")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wextra")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wextra")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wpedantic")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wpedantic")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wpedantic")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wpedantic")
|
||||
|
||||
endif(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
endif(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
|
||||
# Optimize yet more.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-O3")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-O3")
|
||||
# Optimize yet more.
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-O3")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-O3")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-DNDEBUG")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-DNDEBUG")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-all")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fstack-protector-all")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-all")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fstack-protector-all")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fdelete-null-pointer-checks")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdelete-null-pointer-checks")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fdelete-null-pointer-checks")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fdelete-null-pointer-checks")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdelete-null-pointer-checks")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fdelete-null-pointer-checks")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fisolate-erroneous-paths-dereference")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fisolate-erroneous-paths-dereference")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fisolate-erroneous-paths-dereference")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fisolate-erroneous-paths-dereference")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fisolate-erroneous-paths-dereference")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fisolate-erroneous-paths-dereference")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-ftree-loop-if-convert")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-loop-if-convert")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-ftree-loop-if-convert")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-ftree-loop-if-convert")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-loop-if-convert")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-ftree-loop-if-convert")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-funwind-tables")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funwind-tables")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-funwind-tables")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-funwind-tables")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funwind-tables")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-funwind-tables")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fasynchronous-unwind-tables")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fasynchronous-unwind-tables")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fasynchronous-unwind-tables")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fasynchronous-unwind-tables")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fasynchronous-unwind-tables")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fasynchronous-unwind-tables")
|
||||
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wp,-D_FORTIFY_SOURCE=2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wp,-D_FORTIFY_SOURCE=2")
|
||||
endif(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wp,-D_FORTIFY_SOURCE=2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wp,-D_FORTIFY_SOURCE=2")
|
||||
endif(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsplit-stack")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsplit-stack")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=generic -pipe -fno-plt")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
|
||||
add_compile_options (-fdiagnostics-show-location=once)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=generic -pipe -fno-plt")
|
||||
if(NOT CMAKE_CXX_FLAGS MATCHES "-fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif(NOT CMAKE_CXX_FLAGS MATCHES "-fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcf-protection")
|
||||
add_compile_options (-fdiagnostics-show-location=once)
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
set(LDFLAGS "${LDFLAGS} -Wl,-Og,โsort-common,โas-needed,-z,now,-pic,-pie")
|
||||
elseif(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
set(LDFLAGS "${LDFLAGS} -Wl,-O1,โsort-common,โas-needed,-z,relro,-z,now,-pic,-pie,-flto")
|
||||
endif()
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
set(LDFLAGS "${LDFLAGS} -Wl,-Og,โsort-common,โas-needed,-z,now,-pic,-pie")
|
||||
elseif(CMAKE_BUILD_TYPE MATCHES "Release")
|
||||
set(LDFLAGS "${LDFLAGS} -Wl,-O1,โsort-common,โas-needed,-z,relro,-z,now,-pic,-pie,-flto")
|
||||
endif()
|
||||
|
||||
# inspired by https://medium.com/@alasher/colored-c-compiler-output-with-ninja-clang-gcc-10bfe7f2b949
|
||||
option (COLORS_FOREVER "Always produce ANSI-colored output (GNU/Clang only)." TRUE)
|
||||
if (${COLORS_FOREVER})
|
||||
message(STATUS "COLORS_FOREVER: ${COLORS_FOREVER}")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
add_compile_options (-fdiagnostics-color=always)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
add_compile_options (-fcolor-diagnostics)
|
||||
endif ()
|
||||
# inspired by https://medium.com/@alasher/colored-c-compiler-output-with-ninja-clang-gcc-10bfe7f2b949
|
||||
option (COLORS_FOREVER "Always produce ANSI-colored output (GNU/Clang only)." TRUE)
|
||||
if (${COLORS_FOREVER})
|
||||
message(STATUS "COLORS_FOREVER: ${COLORS_FOREVER}")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
add_compile_options (-fdiagnostics-color=always)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
add_compile_options (-fcolor-diagnostics)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
message(STATUS "Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
||||
message(STATUS "LDFLAGS: ${LDFLAGS}")
|
||||
message(STATUS "Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
||||
message(STATUS "LDFLAGS: ${LDFLAGS}")
|
||||
|
||||
find_program(LLD lld)
|
||||
if(LLD)
|
||||
if(NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-fuse-ld=lld")
|
||||
message(STATUS "Linker: lld: ${LLD}")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
endif(NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-fuse-ld=lld")
|
||||
endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||
find_program(LLD lld)
|
||||
if(LLD)
|
||||
if(NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-fuse-ld=lld")
|
||||
message(STATUS "Linker: lld: ${LLD}")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
endif(NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-fuse-ld=lld")
|
||||
endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
|
||||
set(FORTUNA_SOURCES
|
||||
|
@ -245,8 +246,10 @@ endif()
|
|||
|
||||
# ref: https://cmake.org/pipermail/cmake/2016-May/063400.html
|
||||
target_link_libraries(fortuna
|
||||
PRIVATE cryptopp
|
||||
PRIVATE fmt::fmt-header-only
|
||||
PRIVATE fmtlog::fmtlog
|
||||
PRIVATE da_threading::da_threading
|
||||
PRIVATE pthread)
|
||||
PRIVATE cryptopp
|
||||
PRIVATE fmt::fmt-header-only
|
||||
PRIVATE fmtlog::fmtlog
|
||||
PRIVATE da_threading::da_threading
|
||||
PRIVATE pthread)
|
||||
|
||||
# vim: ft=cmake ff=unix softtabstop=2
|
||||
|
|
Reference in New Issue