libcryfs/src/cpp-utils/CMakeLists.txt

91 lines
2.9 KiB
CMake

project (cpp-utils)
set(SOURCES
crypto/symmetric/ciphers.cpp
crypto/symmetric/testutils/FakeAuthenticatedCipher.cpp
crypto/kdf/Scrypt.cpp
crypto/kdf/SCryptParameters.cpp
crypto/kdf/PasswordBasedKDF.cpp
crypto/RandomPadding.cpp
crypto/symmetric/EncryptionKey.cpp
crypto/hash/Hash.cpp
process/daemonize.cpp
process/subprocess.cpp
process/SignalCatcher.cpp
process/SignalHandler.cpp
tempfile/TempFile.cpp
tempfile/TempDir.cpp
network/HttpClient.cpp
network/FakeHttpClient.cpp
io/Console.cpp
io/DontEchoStdinToStdoutRAII.cpp
io/NoninteractiveConsole.cpp
io/pipestream.cpp
thread/LoopThread.cpp
thread/ThreadSystem.cpp
thread/debugging_nonwindows.cpp
thread/debugging_windows.cpp
thread/LeftRight.cpp
random/Random.cpp
random/RandomGeneratorThread.cpp
random/OSRandomGenerator.cpp
random/PseudoRandomPool.cpp
random/RandomDataBuffer.cpp
random/RandomGenerator.cpp
lock/LockPool.cpp
data/SerializationHelper.cpp
data/Serializer.cpp
data/Deserializer.cpp
data/DataFixture.cpp
data/DataUtils.cpp
data/Data.cpp
assert/assert.cpp
assert/backtrace_nonwindows.cpp
assert/backtrace_windows.cpp
assert/AssertFailed.cpp
system/get_total_memory.cpp
system/homedir.cpp
system/memory_nonwindows.cpp
system/memory_windows.cpp
system/time.cpp
system/diskspace.cpp
system/filetime_nonwindows.cpp
system/filetime_windows.cpp
system/env.cpp
value_type/ValueType.cpp
)
add_library(${PROJECT_NAME} STATIC ${SOURCES})
if(MSVC)
target_link_libraries(${PROJECT_NAME} PUBLIC DbgHelp)
elseif (APPLE)
target_compile_definitions(${PROJECT_NAME} PRIVATE BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED)
else()
find_program(ADDR2LINE addr2line)
if ("${ADDR2LINE}" STREQUAL "ADDR2LINE-NOTFOUND")
message(WARNING "addr2line not found. Backtraces will be reduced.")
else()
message(STATUS "addr2line found. Using it for backtraces.")
target_compile_definitions(${PROJECT_NAME} PRIVATE BOOST_STACKTRACE_USE_ADDR2LINE)
target_compile_definitions(${PROJECT_NAME} PRIVATE BOOST_STACKTRACE_ADDR2LINE_LOCATION=${ADDR2LINE})
endif()
endif()
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS})
target_link_libraries(${PROJECT_NAME} PUBLIC cryptopp boost spdlog)
target_add_boost(${PROJECT_NAME})
target_enable_style_warnings(${PROJECT_NAME})
target_activate_cpp14(${PROJECT_NAME})
if(MSVC)
# Required by range-v3, see its README.md
target_compile_options(${PROJECT_NAME} PUBLIC /experimental:preprocessor /permissive- /Zc:twoPhase-)
endif()