Install cmake export file

This commit is contained in:
Jon Petrissans 2022-01-30 18:27:33 +01:00
parent c7d5f2cbec
commit c5dac2bc0b
2 changed files with 32 additions and 2 deletions

View File

@ -34,7 +34,16 @@ target_include_directories(valijson INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
install(DIRECTORY include/ DESTINATION include) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(TARGETS valijson
EXPORT valijsonConfig
DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(EXPORT valijsonConfig
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/valijson"
)
if(NOT valijson_BUILD_TESTS AND NOT valijson_BUILD_EXAMPLES) if(NOT valijson_BUILD_TESTS AND NOT valijson_BUILD_EXAMPLES)
return() return()

View File

@ -147,7 +147,11 @@ The examples and test suite can be built using cmake:
# Run test suite (from build directory) # Run test suite (from build directory)
./test_suite ./test_suite
``` ```
#### How to add this library to your cmake target #### ## How to add this library to your cmake target ##
Valijson can be integrated either as git submodule or with find_package().
### Valijson as git submodule ###
Download this repository into your project Download this repository into your project
@ -172,7 +176,24 @@ add_executable(your-executable ...)
target_link_libraries(your-executable ValiJSON::valijson) target_link_libraries(your-executable ValiJSON::valijson)
``` ```
### Install Valijson and import it ###
It is possible to install headers by running cmake's install command from the build tree. Once Valijson is installed, use it from other CMake projects using `find_package(Valijson)` in your CMakeLists.txt.
```bash
# Install Valijson
git clone --depth=1 git@github.com:tristanpenman/valijson.git
cd valijson
mkdir build
cd build
cmake ..
cmake --install .
```
```cmake
# Import installed valijson and link it to your executable
find_package(valijson REQUIRED)
add_executable(executable main.cpp)
target_link_libraries(executable valijson)
```
### Xcode ### ### Xcode ###
An Xcode project has also been provided, in the 'xcode' directory. Note that in order to run the test suite, you may need to configure the working directory for the 'test\_suite' scheme. It is recommended that you use the 'xcode' directory as the working directory. An Xcode project has also been provided, in the 'xcode' directory. Note that in order to run the test suite, you may need to configure the working directory for the 'test\_suite' scheme. It is recommended that you use the 'xcode' directory as the working directory.