From be340c7d2e5c744856dafc918376471ff25f9dfc Mon Sep 17 00:00:00 2001 From: kradchen Date: Tue, 18 Mar 2025 14:16:50 +0800 Subject: [PATCH] feat: Improve cmake install logic --- .gitignore | 3 +++ CMakeLists.txt | 20 ++++++++++---------- cmake/ParserConfig.cmake | 9 ++++----- 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ad0c79 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +build/* +Pub/* +.*/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index d889a00..6004d6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.8) set(PROJECT_NAME Parser) project(${PROJECT_NAME}) set(CMAKE_CXX_STANDARD 14) @@ -25,13 +25,13 @@ elseif(MINGW) target_link_libraries(${PROJECT_NAME} matio sqlite3) endif() -set(BBENC_INCLUDE_FILES parser_global.h Parser.h - ShotList/ShotList.h - MatLab/MatlabCreator.h MatLab/MatlabOpener.h - Data/Arraypointer.h Data/CEData.h Data/ConfigHeader.h Data/MetaData.h Data/MovementData.h Data/PatientData.h Data/TemperatureData.h Data/AScanData.h Data/ElectricIndex.h Data/ElementIndex.h Data/GeometryIndex.h Data/Hardwareinfomation.h Data/OneTasAScanData.h Data/TasElementIndex.h Data/TasIndex.h Data/CEMeasuredData.h) -set(INCLUDE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/Parser/") - -foreach(file ${BBENC_INCLUDE_FILES}) -execute_process( COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/src/${file}" ${INCLUDE_OUTPUT_PATH}${file}) -endforeach( file ) +install(FILES src/parser_global.h DESTINATION include/Parser) +install(FILES src/Parser.h DESTINATION include/Parser) +install(DIRECTORY src/ShotList/ DESTINATION include/Parser/ShotList FILES_MATCHING PATTERN "ShotList.h") +install(DIRECTORY src/MatLab/ DESTINATION include/Parser/MatLab FILES_MATCHING PATTERN "*r.h") +install(DIRECTORY src/Data/ DESTINATION include/Parser/Data FILES_MATCHING PATTERN "*.h") +install(FILES cmake/ParserConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}) +install(FILES thirdParty/lib/libmatio.so DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/ RENAME libmatio.so.11) +install(FILES thirdParty/lib/libsqlite3.so DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/ RENAME libsqlite3.so.0) +install(TARGETS Parser RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/cmake/ParserConfig.cmake b/cmake/ParserConfig.cmake index 0a4b69d..3c69e54 100644 --- a/cmake/ParserConfig.cmake +++ b/cmake/ParserConfig.cmake @@ -2,16 +2,15 @@ set(Parser_MAJOR_VERSION 1) set(Parser_MINOR_VERSION 0) set(Parser_BUILD_VERSION 0) -get_filename_component(Parser_DIR "${CMAKE_CURRENT_LIST_DIR}/" PATH) -set(Parser_INCLUDE_DIRS "${Parser_DIR}/include/" "${Parser_DIR}/include/Parser/") +set(Parser_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include/" "${CMAKE_CURRENT_LIST_DIR}/include/Parser/") add_library(Parser SHARED IMPORTED) -set_target_properties(Parser PROPERTIES IMPORTED_LOCATION "${Parser_DIR}/bin/libParser.so") +set_target_properties(Parser PROPERTIES IMPORTED_LOCATION "${Parser_DIR}/lib/libParser.so") add_library(sqlite3 SHARED IMPORTED) set_property(TARGET sqlite3 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(sqlite3 PROPERTIES IMPORTED_LOCATION_DEBUG "${Parser_DIR}/bin/libsqlite3.so.0") +set_target_properties(sqlite3 PROPERTIES IMPORTED_LOCATION_DEBUG "${Parser_DIR}/lib/libsqlite3.so.0") add_library(matio SHARED IMPORTED) set_property(TARGET matio APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(matio PROPERTIES IMPORTED_LOCATION_DEBUG "${Parser_DIR}/bin/libmatio.so.11") +set_target_properties(matio PROPERTIES IMPORTED_LOCATION_DEBUG "${Parser_DIR}/lib/libmatio.so.11") #set(Parser_Libraries Parser matio sqlite3) set(Parser_FOUND TRUE)