Untitled
unknown
plain_text
9 months ago
1.2 kB
5
Indexable
root/
├── MyLib/
│ ├── CMakeLists.txt
│ ├── include/mylib/...
│ ├── src/...
│ └── mylib-config.cmake.in
├── MyApp/
│ ├── CMakeLists.txt
│ └── main.cpp
└── CMakeLists.txt ← główny
MyLib/CMakeLists.txt:
project(MyLib)
add_library(MyLib src/MyLib.cpp)
target_include_directories(MyLib PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
# Export targetów do folderu build
install(TARGETS MyLib EXPORT MyLibTargets)
export(EXPORT MyLibTargets
FILE "${CMAKE_CURRENT_BINARY_DIR}/MyLibTargets.cmake"
NAMESPACE MyLib::
)
# Konfiguracja pakietu
include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/mylib-config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/MyLibConfig.cmake"
INSTALL_DESTINATION dummy # nieistotne
)
# Potrzebne do find_package
set(MyLib_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE PATH "")
MyLib/mylib-config.cmake.in:
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/MyLibTargets.cmake")
MyApp/CMakeLists.txt:
project(MyApp)
find_package(MyLib REQUIRED)
add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE MyLib::MyLib)
Editor is loading...
Leave a Comment