diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 222fe11..7c57087 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,14 @@ jobs: - name: Build project run: cmake --build build + - name: Install project + run: cmake --install build --prefix install + + - name: Upload project as artifact + uses: actions/upload-artifact@v3.1.3 + with: + path: install + build-testing: name: Build Testing runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index ee3c7e0..4860d2b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ !.git* build +install diff --git a/CMakeLists.txt b/CMakeLists.txt index d5e6ee1..7504694 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,3 +71,32 @@ if(BUILD_TESTING) catch_discover_tests(my_fibonacci_test) endif() + +install( + TARGETS my_fibonacci my_fibonacci_main + EXPORT my_fibonacci_targets + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + FILE_SET HEADERS +) + +install( + EXPORT my_fibonacci_targets + FILE MyFibonacciTargets.cmake + NAMESPACE my_fibonacci:: + DESTINATION lib/cmake/MyFibonacci +) + +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + MyFibonacciConfigVersion.cmake + COMPATIBILITY SameMajorVersion +) + +install( + FILES + cmake/MyFibonacciConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/MyFibonacciConfigVersion.cmake + DESTINATION lib/cmake/MyFibonacci +) diff --git a/cmake/MyFibonacciConfig.cmake b/cmake/MyFibonacciConfig.cmake new file mode 100644 index 0000000..7c73108 --- /dev/null +++ b/cmake/MyFibonacciConfig.cmake @@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/MyFibonacciTargets.cmake)