Untitled

 avatar
unknown
plain_text
23 days ago
1.2 kB
2
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