Skip to content

Commit 96ac2af

Browse files
committed
Support installation
Signed-off-by: Darshan Sen <raisinten@gmail.com>
1 parent bb39d35 commit 96ac2af

File tree

6 files changed

+35
-4
lines changed

6 files changed

+35
-4
lines changed

.github/workflows/ci.yml

+11-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,17 @@ jobs:
4040
4141
- name: Build
4242
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
43-
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
43+
run: >
44+
cmake --build ${{ steps.strings.outputs.build-output-dir }}
45+
--config ${{ matrix.build_type }}
46+
47+
- name: Install
48+
run: >
49+
cmake --install ${{ steps.strings.outputs.build-output-dir }}
50+
--prefix ${{ steps.strings.outputs.build-output-dir }}/dist
51+
--config ${{ matrix.build_type }}
52+
--component benoni
53+
--verbose
4454
4555
- name: Test
4656
working-directory: ${{ steps.strings.outputs.build-output-dir }}

CMakeLists.txt

+14
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,20 @@ elseif(UNIX)
1717
add_subdirectory(src/linux)
1818
endif()
1919

20+
set_target_properties(benoni PROPERTIES PUBLIC_HEADER include/benoni/http.h)
21+
22+
include(GNUInstallDirs)
23+
24+
install(TARGETS benoni
25+
EXPORT benoni
26+
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}"
27+
COMPONENT benoni
28+
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
29+
COMPONENT benoni)
30+
install(EXPORT benoni
31+
DESTINATION "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake"
32+
COMPONENT benoni)
33+
2034
if(BENONI_EXAMPLES)
2135
add_subdirectory(examples)
2236
endif()

Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ configure: .always
1616
build: .always
1717
$(CLANG_FORMAT) --style=file -i include/benoni/http.h src/apple/http.mm src/win32/http.cc src/linux/http.cc examples/http_example.cc test/unit/postman-echo-get.cc test/packaging/project/project.cc
1818
$(CMAKE) --build build
19+
$(CMAKE) --install build --prefix build/dist --config Debug --component benoni --verbose
1920

2021
example: .always
2122
$(EXAMPLE)

src/apple/CMakeLists.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ add_library(benoni STATIC http.mm)
22

33
target_compile_options(benoni PUBLIC "-fobjc-arc")
44

5-
target_include_directories(benoni PUBLIC "${PROJECT_SOURCE_DIR}/include")
5+
target_include_directories(benoni PUBLIC
6+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
7+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/include>)
68

79
target_link_libraries(benoni PUBLIC "-framework Foundation")

src/linux/CMakeLists.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
add_library(benoni STATIC http.cc)
22

3-
target_include_directories(benoni PUBLIC "${PROJECT_SOURCE_DIR}/include")
3+
target_include_directories(benoni PUBLIC
4+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
5+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/include>)
46

57
target_link_libraries(benoni PUBLIC libsoup)

src/win32/CMakeLists.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
add_library(benoni STATIC http.cc)
22

3-
target_include_directories(benoni PUBLIC "${PROJECT_SOURCE_DIR}/include")
3+
target_include_directories(benoni PUBLIC
4+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
5+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/include>)
46

57
target_link_libraries(benoni PUBLIC "Winhttp.lib")

0 commit comments

Comments
 (0)