feat: Improve cmake install logic

This commit is contained in:
kradchen
2025-03-18 14:16:50 +08:00
parent c61ab71d36
commit be340c7d2e
3 changed files with 17 additions and 15 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
build/*
Pub/*
.*/

View File

@@ -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})

View File

@@ -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)