cmake_minimum_required(VERSION 3.8) project(eqpalg VERSION 0.1) set(CONFIG_FILE_PATH "config.json") include(../cmake_include/public.cmake) include(../cmake_include/baosight.cmake) include(../cmake_include/mix_cc.cmake) message(STATUS "C++ 编译器路径: ${CMAKE_CXX_COMPILER}") message(STATUS "C++ 编译器ID: ${CMAKE_CXX_COMPILER_ID}") message(STATUS "C++ 编译器版本: ${CMAKE_CXX_COMPILER_VERSION}") find_package( Boost COMPONENTS system filesystem serialization context regex container iostreams stacktrace_addr2line unit_test_framework REQUIRED) find_package(dlib CONFIG REQUIRED) find_package(mlpack CONFIG REQUIRED) find_package(Armadillo CONFIG REQUIRED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-omit-frame-pointer -Wno-deprecated-declarations") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0") aux_source_directory(./ DIR_ROOT) aux_source_directory(algs ALGS) aux_source_directory(threads THREADS) # aux_source_directory(data_handler DATA_HANDLER) # aux_source_directory(distribution DISTRIBUTION) # aux_source_directory(regression REGRESSION) # aux_source_directory(oneClassSvm ONECLASSSVM) # aux_source_directory(stat_tools STAT) aux_source_directory(exp_macro EXP_MACRO) aux_source_directory(feature_extraction FEATURE_EXTRACTION) aux_source_directory(utility EQPALG_UTILITY) set(LINK_OPTION ${ICE} ${IPLATURE} ${SQL} ${FREEZE} ${BASE_LIB} ${CODE_LIB} ${IDA} ${LEGACY_JSON} ${MEMCACHE_LIB} ${IHDB_LIB} rt stdc++ c m ) # create dir "~/shm" execute_process(COMMAND sh "/users/dsc/code/shm/shmdir.sh" . ) # set execute info add_executable( eqpalg ${DIR_ROOT} ${ALGS} ${THREADS} # ${DATA_HANDLER} # ${DISTRIBUTION} # ${REGRESSION} # ${ONECLASSSVM} ${EQPALG_UTILITY} ${EXP_MACRO} ${FEATURE_EXTRACTION} # ${STAT} ) target_link_libraries(eqpalg ${LINK_OPTION} ${Boost_LIBRARIES} ${mix_cc} nlohmann_json::nlohmann_json Eigen3::Eigen dlib::dlib mlpack::mlpack ) target_include_directories( eqpalg PUBLIC ./ ../ ${legacy_include} ${iplature_include} ${ihdb_include} ${memcache_include} ${iXcom}Include) set_target_properties(eqpalg PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${bin_dir}) # ###################### add test ######################## include(CTest) aux_source_directory(./test TEST_SOURCES) add_executable(eqpalg_test ${TEST_SOURCES} ./utility/expression_engine.cpp ) target_include_directories(eqpalg_test PUBLIC ./ ../ ${my_lib_include} ${iplature_include} ) target_link_libraries(eqpalg_test ${LINK_OPTION} ${Boost_LIBRARIES} ${mix_cc} nlohmann_json::nlohmann_json Eigen3::Eigen ) set_target_properties(eqpalg_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test) enable_testing() add_test(NAME eqpalg_test WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test COMMAND eqpalg_test)