Skip to content

Commit 116615b

Browse files
committed
[cmake] adding a target install
1 parent 46fe070 commit 116615b

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

CMakeLists.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,13 @@ endif()
188188
#
189189
# Cucumber-Cpp
190190
#
191+
set (CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}")
192+
set (CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
193+
set (CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
191194

192195
set(CUKE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
193-
include_directories(${CUKE_INCLUDE_DIR})
196+
install(DIRECTORY ${CUKE_INCLUDE_DIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
197+
194198
set(CUKE_LIBRARIES cucumber-cpp ${CUKE_EXTRA_LIBRARIES})
195199
add_subdirectory(3rdparty/json_spirit)
196200
add_subdirectory(src)

README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,17 @@ git submodule update
6464
cmake -E make_directory build
6565
6666
# Generate Makefiles
67-
cmake -E chdir build cmake -DCUKE_ENABLE_EXAMPLES=on ..
67+
cmake -E chdir build cmake -DCUKE_ENABLE_EXAMPLES=on -DCMAKE_INSTALL_PREFIX=${prefix} ..
6868
6969
# Build cucumber-cpp and tests
7070
cmake --build build
7171
7272
# Run unit tests
7373
cmake --build build --target test
7474
75+
# Run install
76+
cmake --build build --target install
77+
7578
# Check implementation against common cucumber test suite
7679
cmake --build build --target features
7780
```

src/CMakeLists.txt

+18
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,27 @@ endif()
4545
add_library(cucumber-cpp-nomain STATIC ${CUKE_SOURCES})
4646
add_library(cucumber-cpp STATIC ${CUKE_SOURCES} main.cpp)
4747

48+
target_include_directories(cucumber-cpp-nomain PUBLIC
49+
$<BUILD_INTERFACE:${CUKE_INCLUDE_DIR}>
50+
$<INSTALL_INTERFACE:include>
51+
PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR})
52+
target_include_directories(cucumber-cpp PUBLIC
53+
$<BUILD_INTERFACE:${CUKE_INCLUDE_DIR}>
54+
$<INSTALL_INTERFACE:include>
55+
PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR})
56+
4857
if(MINGW)
4958
list(APPEND CUKE_DEP_LIBRARIES ws2_32)
5059
endif(MINGW)
5160

5261
target_link_libraries(cucumber-cpp-nomain PRIVATE ${CUKE_DEP_LIBRARIES})
5362
target_link_libraries(cucumber-cpp PRIVATE ${CUKE_DEP_LIBRARIES})
63+
64+
install(TARGETS cucumber-cpp-nomain
65+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
66+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
67+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
68+
install(TARGETS cucumber-cpp
69+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
70+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
71+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

0 commit comments

Comments
 (0)