#[===================================================================[ rippled compile options/settings via an interface library #]===================================================================] add_library (opts INTERFACE) add_library (Ripple::opts ALIAS opts) target_compile_definitions (opts INTERFACE BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS $<$: BOOST_ASIO_NO_DEPRECATED BOOST_FILESYSTEM_NO_DEPRECATED > $<$>: BOOST_COROUTINES_NO_DEPRECATION_WARNING BOOST_BEAST_ALLOW_DEPRECATED BOOST_FILESYSTEM_DEPRECATED > $<$:BEAST_NO_UNIT_TEST_INLINE=1> $<$:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1> $<$:RIPPLE_SINGLE_IO_SERVICE_THREAD=1>) target_compile_options (opts INTERFACE $<$,$>:-Wsuggest-override> $<$:-fno-omit-frame-pointer> $<$,$>:-fprofile-arcs -ftest-coverage> $<$,$>:-fprofile-instr-generate -fcoverage-mapping> $<$:-pg> $<$,$>:-p>) target_link_libraries (opts INTERFACE $<$,$>:-fprofile-arcs -ftest-coverage> $<$,$>:-fprofile-instr-generate -fcoverage-mapping> $<$:-pg> $<$,$>:-p>) if(jemalloc) find_package(jemalloc REQUIRED) target_compile_definitions(opts INTERFACE PROFILE_JEMALLOC) target_link_libraries(opts INTERFACE jemalloc::jemalloc) endif () if (san) target_compile_options (opts INTERFACE # sanitizers recommend minimum of -O1 for reasonable performance $<$:-O1> ${SAN_FLAG} -fno-omit-frame-pointer) target_compile_definitions (opts INTERFACE $<$:SANITIZER=ASAN> $<$:SANITIZER=TSAN> $<$:SANITIZER=MSAN> $<$:SANITIZER=UBSAN>) target_link_libraries (opts INTERFACE ${SAN_FLAG} ${SAN_LIB}) endif () #[===================================================================[ rippled transitive library deps via an interface library #]===================================================================] add_library (ripple_syslibs INTERFACE) add_library (Ripple::syslibs ALIAS ripple_syslibs) target_link_libraries (ripple_syslibs INTERFACE $<$: legacy_stdio_definitions.lib Shlwapi kernel32 user32 gdi32 winspool comdlg32 advapi32 shell32 ole32 oleaut32 uuid odbc32 odbccp32 crypt32 > $<$>:dl> $<$,$>>:rt>) if (NOT MSVC) set (THREADS_PREFER_PTHREAD_FLAG ON) find_package (Threads) target_link_libraries (ripple_syslibs INTERFACE Threads::Threads) endif () add_library (ripple_libs INTERFACE) add_library (Ripple::libs ALIAS ripple_libs) target_link_libraries (ripple_libs INTERFACE Ripple::syslibs)