X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/46b0747592074017ff0ea4b33d4a7194235886e5..2574a28cbf000603bc31f61593dbf061ff56c1d5:/libs/CMakeLists.txt?ds=inline diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index af3d944f..b2b8ee0f 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -1,49 +1,143 @@ set ( CMAKE_POSITION_INDEPENDENT_CODE ON ) if ( BUILD_LIB_COMMON ) - add_subdirectory (common) + find_package ( Iconv REQUIRED ) + add_library ( common STATIC common/blockio.cpp common/common.cpp common/strptime.cpp ) + target_include_directories ( common PUBLIC common/include ) + target_link_libraries ( common Iconv::Iconv ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( common PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( common PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_COMMON ) if ( BUILD_LIB_CONFFILES ) - add_subdirectory (conffiles) + add_library ( conffiles STATIC conffiles/conffiles.cpp ) + target_include_directories ( conffiles PUBLIC conffiles/include ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( conffiles PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( conffiles PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_CONFFILES ) if ( BUILD_LIB_CRYPTO ) - add_subdirectory (crypto) + add_library ( crypto STATIC crypto/ag_md5.c crypto/bfstream.cpp crypto/blowfish.c ) + target_include_directories ( crypto PUBLIC crypto/include ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( crypto PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( crypto PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_CRYPTO ) if ( BUILD_LIB_DOTCONFPP ) - add_subdirectory (dotconfpp) + add_library ( dotconfpp STATIC dotconfpp/dotconfpp.cpp dotconfpp/mempool.cpp ) + target_include_directories ( dotconfpp PUBLIC dotconfpp/include ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( dotconfpp PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( dotconfpp PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_DOTCONFPP ) if ( BUILD_LIB_IA ) - add_subdirectory (ia) + add_library ( ia STATIC ia/ia.cpp ) + target_include_directories ( ia PUBLIC ia/include ) + target_link_libraries ( ia crypto common ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( ia PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( ia PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_IA ) if ( BUILD_LIB_IBPP ) - add_subdirectory (ibpp) -endif ( BUILD_LIB_IBPP ) + add_library ( ibpp STATIC ibpp/all_in_one.cpp ) + target_include_directories ( ibpp PUBLIC ibpp/include ) + target_compile_options ( ibpp PRIVATE -Wno-old-style-cast $<$:-Wno-useless-cast> ) -if ( BUILD_LIB_JSON ) - add_subdirectory (json) -endif ( BUILD_LIB_JSON ) + if ( CLANG_TIDY_EXE ) + set_target_properties ( ibpp PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( ibpp PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () +endif ( BUILD_LIB_IBPP ) if ( BUILD_LIB_LOGGER ) - add_subdirectory (logger) + add_library ( logger STATIC logger/logger.cpp ) + target_include_directories ( logger PUBLIC logger/include ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( logger PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( logger PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_LOGGER ) if ( BUILD_LIB_PINGER ) - add_subdirectory (pinger) + add_library ( pinger STATIC pinger/pinger.cpp ) + target_include_directories ( pinger PUBLIC pinger/include ) + target_link_libraries ( pinger common ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( pinger PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( pinger PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_PINGER ) if ( BUILD_LIB_SCRIPTEXECUTER ) - add_subdirectory (scriptexecuter) + add_library ( scriptexecuter STATIC scriptexecuter/scriptexecuter.c ) + target_include_directories ( scriptexecuter PUBLIC scriptexecuter/include ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( scriptexecuter PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( scriptexecuter PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_SCRIPTEXECUTER ) if ( BUILD_LIB_SMUX ) - add_subdirectory (smux) + file ( GLOB SMUX_C_FILES smux/*.c ) + add_library ( smux STATIC ${SMUX_C_FILES} ) + target_include_directories ( smux PUBLIC smux/include smux/include/stg ) + target_compile_options ( smux PRIVATE -Wno-cpp ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( smux PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( smux PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_SMUX ) if ( BUILD_LIB_SRVCONF ) - add_subdirectory (srvconf) + find_package ( EXPAT REQUIRED ) + file ( GLOB PARSERS srvconf/parsers/*.cpp ) + add_library ( srvconf STATIC srvconf/servconf.cpp srvconf/netunit.cpp ${PARSERS} ) + target_include_directories ( srvconf PUBLIC srvconf/include ) + target_link_libraries ( srvconf crypto common EXPAT::EXPAT ) + + if ( CLANG_TIDY_EXE ) + set_target_properties ( srvconf PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) + endif () + if ( INCLUDE_WHAT_YOU_USE_EXE ) + set_target_properties ( srvconf PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" ) + endif () endif ( BUILD_LIB_SRVCONF )