Skip to content

Commit cb3318f

Browse files
committed
cmake: rework library
1 parent e5967da commit cb3318f

File tree

3 files changed

+23
-62
lines changed

3 files changed

+23
-62
lines changed

Foo/CMakeLists.txt

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,14 @@
1-
add_library(Foo)
2-
target_sources(Foo
3-
PRIVATE
1+
add_cxx_library(
2+
NAME
3+
Foo
4+
HEADERS
45
include/foo/Foo.hpp
5-
src/Foo.cpp)
6-
target_include_directories(Foo
7-
PUBLIC
8-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
9-
$<INSTALL_INTERFACE:include>)
10-
target_compile_features(Foo PUBLIC cxx_std_20)
11-
set_target_properties(Foo PROPERTIES
12-
VERSION ${PROJECT_VERSION}
13-
POSITION_INDEPENDENT_CODE ON
14-
PUBLIC_HEADER include/foo/Foo.hpp)
15-
if(APPLE)
16-
set_target_properties(Foo PROPERTIES INSTALL_RPATH "@loader_path")
17-
elseif(UNIX)
18-
set_target_properties(Foo PROPERTIES INSTALL_RPATH "$ORIGIN")
19-
endif()
20-
target_link_libraries(Foo PRIVATE absl::log)
21-
add_library(${PROJECT_NAMESPACE}::Foo ALIAS Foo)
6+
SOURCES
7+
src/Foo.cpp
8+
LINK_LIBRARIES
9+
absl::log
10+
INSTALL_DIR
11+
foo
12+
)
2213

2314
add_subdirectory(tests)
24-
25-
# Install
26-
include(GNUInstallDirs)
27-
install(TARGETS Foo
28-
EXPORT ${PROJECT_NAME}Targets
29-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/foo
30-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
31-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
32-
#RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
33-
)

FooBar/CMakeLists.txt

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,14 @@
1-
add_library(FooBar)
2-
target_sources(FooBar
3-
PRIVATE
1+
add_cxx_library(
2+
NAME
3+
FooBar
4+
HEADERS
45
include/foobar/FooBar.hpp
5-
src/FooBar.cpp)
6-
target_include_directories(FooBar
7-
PUBLIC
8-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
9-
$<INSTALL_INTERFACE:include>)
10-
target_compile_features(FooBar PUBLIC cxx_std_20)
11-
set_target_properties(FooBar PROPERTIES
12-
VERSION ${PROJECT_VERSION}
13-
POSITION_INDEPENDENT_CODE ON
14-
PUBLIC_HEADER include/foobar/FooBar.hpp)
15-
# note: macOS is APPLE and also UNIX !
16-
if(APPLE)
17-
set_target_properties(FooBar PROPERTIES INSTALL_RPATH "@loader_path")
18-
elseif(UNIX)
19-
set_target_properties(FooBar PROPERTIES INSTALL_RPATH "$ORIGIN")
20-
endif()
21-
target_link_libraries(FooBar PUBLIC absl::log Bar Foo)
22-
add_library(${PROJECT_NAMESPACE}::FooBar ALIAS FooBar)
6+
SOURCES
7+
src/FooBar.cpp
8+
LINK_LIBRARIES
9+
absl::log Bar Foo
10+
INSTALL_DIR
11+
foobar
12+
)
2313

2414
add_subdirectory(tests)
25-
26-
# Install
27-
include(GNUInstallDirs)
28-
install(TARGETS FooBar
29-
EXPORT ${PROJECT_NAME}Targets
30-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/foobar
31-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
32-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
33-
#RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
34-
)

cmake/cpp.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ function(add_cxx_library)
172172
else()
173173
target_include_directories(${LIBRARY_NAME} PUBLIC
174174
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
175-
$<INSTALL_INTERFACE:include>)
175+
$<INSTALL_INTERFACE:include>
176176
)
177177
target_sources(${LIBRARY_NAME} PRIVATE
178178
${LIBRARY_HEADERS}

0 commit comments

Comments
 (0)