Skip to content

Commit 4a684e4

Browse files
committed
iox-eclipse-iceoryx#1287 Add iox_add_library macro
Signed-off-by: Christian Eltzschig <me@elchris.org>
1 parent 98b97a8 commit 4a684e4

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

iceoryx_hoofs/cmake/IceoryxPackageHelper.cmake

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,61 @@ Macro(install_package_files_and_export)
111111
DESTINATION ${DESTINATION_CONFIGDIR}
112112
)
113113
endMacro()
114+
115+
Macro(iox_add_library)
116+
set(arguments TARGET RPATH FILES PUBLIC_LINKS PRIVATE_LINKS PRIVATE_LINKS_LINUX ALIAS)
117+
cmake_parse_arguments(IOX "" "" "${arguments}" ${ARGN} )
118+
119+
add_library( ${IOX_TARGET} ${IOX_FILES} )
120+
add_library( ${IOX_ALIAS} ALIAS ${IOX_TARGET})
121+
122+
set_target_properties(${IOX_TARGET} PROPERTIES
123+
CXX_STANDARD_REQUIRED ON
124+
CXX_STANDARD ${ICEORYX_CXX_STANDARD}
125+
POSITION_INDEPENDENT_CODE ON
126+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
127+
)
128+
129+
target_compile_options(${IOX_TARGET} PRIVATE ${ICEORYX_WARNINGS} ${ICEORYX_SANITIZER_FLAGS})
130+
131+
target_link_libraries(${IOX_TARGET}
132+
PUBLIC
133+
${IOX_PUBLIC_LINKS}
134+
PRIVATE
135+
${IOX_PRIVATE_LINKS}
136+
)
137+
138+
if ( LINUX )
139+
target_link_libraries(${IOX_TARGET} PRIVATE ${IOX_PRIVATE_LINKS_LINUX})
140+
endif ( LINUX )
141+
142+
if ( LINUX OR UNIX )
143+
set_target_properties(
144+
${IOX_TARGET}
145+
PROPERTIES
146+
BUILD_RPATH ${IOX_RPATH}
147+
INSTALL_RPATH ${IOX_RPATH}
148+
)
149+
elseif( APPLE )
150+
set_target_properties(
151+
${IOX_TARGET}
152+
PROPERTIES
153+
BUILD_RPATH ${IOX_RPATH}
154+
INSTALL_RPATH ${IOX_RPATH}
155+
)
156+
endif( LINUX OR UNIX )
157+
158+
if(PERFORM_CLANG_TIDY)
159+
set_target_properties(
160+
${IOX_TARGET}
161+
PROPERTIES
162+
CXX_CLANG_TIDY "${PERFORM_CLANG_TIDY}"
163+
)
164+
endif(PERFORM_CLANG_TIDY)
165+
166+
target_include_directories(${IOX_TARGET}
167+
PUBLIC
168+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
169+
$<INSTALL_INTERFACE:include/${PREFIX}>
170+
)
171+
endMacro()

0 commit comments

Comments
 (0)