1
0

chore: change build script to make BMap can be used by CMake

- change script for installing BMap like LibCmo although no one will use it.
- move package install command into respective cmake script.
- change BMap project layout
This commit is contained in:
2026-01-24 17:30:54 +08:00
parent f9ab66dfc2
commit 9228f343ff
8 changed files with 74 additions and 37 deletions

View File

@@ -3,21 +3,22 @@ add_library(BMap SHARED "")
# Setup sources
target_sources(BMap
PRIVATE
BMap.cpp
BMExports.cpp
BMap/BMap.cpp
BMap/BMExports.cpp
)
# Setup headers
target_sources(BMap
PRIVATE
PUBLIC
FILE_SET HEADERS
FILES
BMap.hpp
BMExports.hpp
BMap/BMap.hpp
BMap/BMExports.hpp
)
# Setup header infomation
target_include_directories(BMap
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}"
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
# Setup linked library infomation
target_link_libraries(BMap
@@ -31,7 +32,36 @@ PRIVATE
BMAP_EXPORTING
)
# Install BMap
# Install binary and headers
install(TARGETS BMap
RUNTIME DESTINATION ${NEMO_INSTALL_BIN_PATH}
EXPORT BMapTargets
LIBRARY DESTINATION ${NEMO_INSTALL_LIB_PATH}
ARCHIVE DESTINATION ${NEMO_INSTALL_LIB_PATH}
INCLUDES DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
FILE_SET HEADERS DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
)
# Install target
install(EXPORT BMapTargets
FILE BMapTargets.cmake
NAMESPACE NeMo::
DESTINATION ${NEMO_INSTALL_LIB_PATH}/cmake/BMap
)
# Package configuration file
write_basic_package_version_file(
BMapConfigVersion.cmake
VERSION ${PACKAGE_VERSION}
COMPATIBILITY SameMinorVersion
)
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/../CMake/BMapConfig.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/BMapConfig.cmake"
INSTALL_DESTINATION ${NEMO_INSTALL_LIB_PATH}/cmake/BMap
)
# Copy package files to install destination
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/BMapConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/BMapConfigVersion.cmake"
DESTINATION
${NEMO_INSTALL_LIB_PATH}/cmake/BMap
)