Skip to content

Commit a0601f5

Browse files
committed
Merge branch 'main' into improve-cpp-library
2 parents 6c5bda7 + 8090ca6 commit a0601f5

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

CMake/ystdlib-cpp-helpers.cmake

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,14 @@ function(cpp_library)
8888

8989
check_if_header_only(arg_cpp_lib_PRIVATE_SOURCES _IS_INTERFACE_LIB _)
9090
if(_IS_INTERFACE_LIB)
91+
if(arg_cpp_lib_PRIVATE_LINK_LIBRARIES)
92+
message(
93+
FATAL_ERROR
94+
"`PRIVATE_LINK_LIBRARIES` disabled for header-only library ${_ALIAS_TARGET_NAME}."
95+
)
96+
endif()
9197
add_library(${arg_cpp_lib_NAME} INTERFACE)
98+
target_link_libraries(${arg_cpp_lib_NAME} INTERFACE ${arg_cpp_lib_PUBLIC_LINK_LIBRARIES})
9299
target_include_directories(
93100
${arg_cpp_lib_NAME}
94101
INTERFACE
@@ -105,6 +112,13 @@ function(cpp_library)
105112
${arg_cpp_lib_PUBLIC_HEADERS}
106113
${arg_cpp_lib_PRIVATE_SOURCES}
107114
)
115+
target_link_libraries(
116+
${arg_cpp_lib_NAME}
117+
PUBLIC
118+
${arg_cpp_lib_PUBLIC_LINK_LIBRARIES}
119+
PRIVATE
120+
${arg_cpp_lib_PRIVATE_LINK_LIBRARIES}
121+
)
108122
target_include_directories(
109123
${arg_cpp_lib_NAME}
110124
PUBLIC
@@ -113,13 +127,6 @@ function(cpp_library)
113127
target_compile_features(${arg_cpp_lib_NAME} PUBLIC cxx_std_20)
114128
endif()
115129

116-
target_link_libraries(
117-
${arg_cpp_lib_NAME}
118-
PUBLIC
119-
${arg_cpp_lib_PUBLIC_LINK_LIBRARIES}
120-
PRIVATE
121-
${arg_cpp_lib_PRIVATE_LINK_LIBRARIES}
122-
)
123130
add_library(${_ALIAS_TARGET_NAME} ALIAS ${arg_cpp_lib_NAME})
124131

125132
if(YSTDLIB_CPP_ENABLE_TESTS)

0 commit comments

Comments
 (0)