@@ -129,29 +129,9 @@ function(opencsd_stage_shared_libs target)
129129 return ()
130130 endif ()
131131
132- foreach (shared_tgt IN ITEMS opencsd opencsd_c_api)
133- if (WIN32 )
134- add_custom_command (TARGET ${target} POST_BUILD
135- COMMAND ${CMAKE_COMMAND } -E copy_if_different
136- $<TARGET_FILE :${shared_tgt} >
137- $<TARGET_FILE_DIR :${target} >/$<TARGET_FILE_NAME:${shared_tgt}>
138- VERBATIM
139- )
140- else ()
141- add_custom_command (TARGET ${target} POST_BUILD
142- COMMAND ${CMAKE_COMMAND } -E copy_if_different
143- $<TARGET_FILE :${shared_tgt} >
144- $<TARGET_FILE_DIR :${target} >/$<TARGET_FILE_NAME:${shared_tgt}>
145- COMMAND ${CMAKE_COMMAND } -E create_symlink
146- $<TARGET_FILE_NAME :${shared_tgt} >
147- $<TARGET_FILE_DIR :${target} >/$<TARGET_SONAME_FILE_NAME:${shared_tgt}>
148- COMMAND ${CMAKE_COMMAND } -E create_symlink
149- $<TARGET_SONAME_FILE_NAME :${shared_tgt} >
150- $<TARGET_FILE_DIR :${target} >/$<TARGET_LINKER_FILE_NAME:${shared_tgt}>
151- VERBATIM
152- )
153- endif ()
154- endforeach ()
132+ if (TARGET stage_shared_libs)
133+ add_dependencies (${target} stage_shared_libs )
134+ endif ()
155135endfunction ()
156136
157137function (opencsd_add_test_executable target )
@@ -229,28 +209,7 @@ set(SNAPSHOT_PARSER_SRCS
229209 decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp
230210)
231211
232- if (OPENCSD_BUILD_MIN_LIB_STATIC)
233- add_library (opencsd STATIC ${OPENCSD_SRCS} )
234- add_library (OpenCSD::opencsd ALIAS opencsd )
235- target_link_libraries (opencsd PUBLIC opencsd_options )
236- target_include_directories (opencsd PRIVATE decoder/source )
237- set_target_properties (opencsd PROPERTIES
238- VERSION ${PROJECT_VERSION }
239- SOVERSION ${PROJECT_VERSION_MAJOR }
240- )
241-
242- add_library (opencsd_c_api STATIC ${OPENCSD_C_API_SRCS} )
243- add_library (OpenCSD::opencsd_c_api ALIAS opencsd_c_api )
244- target_link_libraries (opencsd_c_api PUBLIC opencsd PRIVATE opencsd_options )
245- target_include_directories (opencsd_c_api PRIVATE decoder/source )
246- if (WIN32 )
247- target_compile_definitions (opencsd_c_api PUBLIC OCSD_USE_STATIC_C_API )
248- endif ()
249- set_target_properties (opencsd_c_api PROPERTIES
250- VERSION ${PROJECT_VERSION }
251- SOVERSION ${PROJECT_VERSION_MAJOR }
252- )
253- else ()
212+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
254213 add_library (opencsd_obj OBJECT ${OPENCSD_SRCS} )
255214 target_link_libraries (opencsd_obj PRIVATE opencsd_options )
256215 target_include_directories (opencsd_obj PRIVATE decoder/source )
@@ -262,20 +221,20 @@ else()
262221 VERSION ${PROJECT_VERSION }
263222 SOVERSION ${PROJECT_VERSION_MAJOR }
264223 )
265- if (WIN32 )
266- set_target_properties (opencsd PROPERTIES
267- RUNTIME_OUTPUT_NAME opencsd
268- ARCHIVE_OUTPUT_NAME opencsd_dll
269- )
270- endif ()
271224 opencsd_set_output_dirs (opencsd "lib" )
272225
273226 add_library (opencsd_static STATIC $<TARGET_OBJECTS :opencsd_obj >)
274227 add_library (OpenCSD::opencsd_static ALIAS opencsd_static )
275228 target_link_libraries (opencsd_static PUBLIC opencsd_options )
276- set_target_properties (opencsd_static PROPERTIES
277- OUTPUT_NAME opencsd
278- )
229+ if (WIN32 )
230+ set_target_properties (opencsd_static PROPERTIES
231+ OUTPUT_NAME opencsd
232+ )
233+ else ()
234+ set_target_properties (opencsd_static PROPERTIES
235+ OUTPUT_NAME opencsd_static
236+ )
237+ endif ()
279238 opencsd_set_output_dirs (opencsd_static "lib" )
280239
281240 add_library (opencsd_c_api_obj_shared OBJECT ${OPENCSD_C_API_SRCS} )
@@ -296,12 +255,6 @@ else()
296255 VERSION ${PROJECT_VERSION }
297256 SOVERSION ${PROJECT_VERSION_MAJOR }
298257 )
299- if (WIN32 )
300- set_target_properties (opencsd_c_api PROPERTIES
301- RUNTIME_OUTPUT_NAME opencsd_c_api
302- ARCHIVE_OUTPUT_NAME opencsd_c_api_dll
303- )
304- endif ()
305258 opencsd_set_output_dirs (opencsd_c_api "lib" )
306259
307260 add_library (opencsd_c_api_obj_static OBJECT ${OPENCSD_C_API_SRCS} )
@@ -317,17 +270,81 @@ else()
317270 if (WIN32 )
318271 target_compile_definitions (opencsd_c_api_static INTERFACE OCSD_USE_STATIC_C_API )
319272 endif ()
320- set_target_properties (opencsd_c_api_static PROPERTIES
321- OUTPUT_NAME opencsd_c_api
322- )
273+ if (WIN32 )
274+ set_target_properties (opencsd_c_api_static PROPERTIES
275+ OUTPUT_NAME opencsd_c_api
276+ )
277+ else ()
278+ set_target_properties (opencsd_c_api_static PROPERTIES
279+ OUTPUT_NAME opencsd_c_api_static
280+ )
281+ endif ()
323282 opencsd_set_output_dirs (opencsd_c_api_static "lib" )
324283
284+ if (OPENCSD_FULL_PROJECT_LAYOUT)
285+ if (WIN32 )
286+ add_custom_target (stage_shared_libs
287+ COMMAND ${CMAKE_COMMAND } -E make_directory "${OPENCSD_BIN_OUT} "
288+ COMMAND ${CMAKE_COMMAND } -E copy_if_different
289+ $<TARGET_FILE :opencsd >
290+ "${OPENCSD_BIN_OUT} /$<TARGET_FILE_NAME :opencsd >"
291+ COMMAND ${CMAKE_COMMAND } -E copy_if_different
292+ $<TARGET_FILE :opencsd_c_api >
293+ "${OPENCSD_BIN_OUT} /$<TARGET_FILE_NAME :opencsd_c_api >"
294+ )
295+ else ()
296+ add_custom_target (stage_shared_libs
297+ COMMAND ${CMAKE_COMMAND } -E make_directory "${OPENCSD_BIN_OUT} "
298+ COMMAND ${CMAKE_COMMAND } -E copy_if_different
299+ $<TARGET_FILE :opencsd >
300+ "${OPENCSD_BIN_OUT} /$<TARGET_FILE_NAME :opencsd >"
301+ COMMAND ${CMAKE_COMMAND } -E create_symlink
302+ $<TARGET_FILE_NAME :opencsd >
303+ "${OPENCSD_BIN_OUT} /$<TARGET_SONAME_FILE_NAME :opencsd >"
304+ COMMAND ${CMAKE_COMMAND } -E create_symlink
305+ $<TARGET_SONAME_FILE_NAME :opencsd >
306+ "${OPENCSD_BIN_OUT} /$<TARGET_LINKER_FILE_NAME :opencsd >"
307+ COMMAND ${CMAKE_COMMAND } -E copy_if_different
308+ $<TARGET_FILE :opencsd_c_api >
309+ "${OPENCSD_BIN_OUT} /$<TARGET_FILE_NAME :opencsd_c_api >"
310+ COMMAND ${CMAKE_COMMAND } -E create_symlink
311+ $<TARGET_FILE_NAME :opencsd_c_api >
312+ "${OPENCSD_BIN_OUT} /$<TARGET_SONAME_FILE_NAME :opencsd_c_api >"
313+ COMMAND ${CMAKE_COMMAND } -E create_symlink
314+ $<TARGET_SONAME_FILE_NAME :opencsd_c_api >
315+ "${OPENCSD_BIN_OUT} /$<TARGET_LINKER_FILE_NAME :opencsd_c_api >"
316+ )
317+ endif ()
318+ add_dependencies (stage_shared_libs opencsd opencsd_c_api )
319+ endif ()
320+
325321 add_custom_target (libs DEPENDS
326322 opencsd
327323 opencsd_static
328324 opencsd_c_api
329325 opencsd_c_api_static
330326 )
327+ else ()
328+ add_library (opencsd STATIC ${OPENCSD_SRCS} )
329+ add_library (OpenCSD::opencsd ALIAS opencsd )
330+ target_link_libraries (opencsd PUBLIC opencsd_options )
331+ target_include_directories (opencsd PRIVATE decoder/source )
332+ set_target_properties (opencsd PROPERTIES
333+ VERSION ${PROJECT_VERSION }
334+ SOVERSION ${PROJECT_VERSION_MAJOR }
335+ )
336+
337+ add_library (opencsd_c_api STATIC ${OPENCSD_C_API_SRCS} )
338+ add_library (OpenCSD::opencsd_c_api ALIAS opencsd_c_api )
339+ target_link_libraries (opencsd_c_api PUBLIC opencsd PRIVATE opencsd_options )
340+ target_include_directories (opencsd_c_api PRIVATE decoder/source )
341+ if (WIN32 )
342+ target_compile_definitions (opencsd_c_api PUBLIC OCSD_USE_STATIC_C_API )
343+ endif ()
344+ set_target_properties (opencsd_c_api PROPERTIES
345+ VERSION ${PROJECT_VERSION }
346+ SOVERSION ${PROJECT_VERSION_MAJOR }
347+ )
331348endif ()
332349
333350if (BUILD_TESTING)
@@ -506,7 +523,39 @@ if(BUILD_TESTING AND NOT OPENCSD_BUILD_MIN_LIB_STATIC)
506523 install (FILES decoder/docs/man/trc_pkt_lister.1 DESTINATION ${CMAKE_INSTALL_MANDIR} /man1)
507524endif ()
508525
509- install (DIRECTORY decoder/include/opencsd/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd)
526+ install (FILES
527+ decoder/include/opencsd/trc_gen_elem_types.h
528+ decoder/include/opencsd/ocsd_if_types.h
529+ decoder/include/opencsd/ocsd_if_version.h
530+ decoder/include/opencsd/trc_pkt_types.h
531+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd
532+ )
533+ install (FILES
534+ decoder/include/opencsd/ptm/trc_pkt_types_ptm.h
535+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/ptm
536+ )
537+ install (FILES
538+ decoder/include/opencsd/stm/trc_pkt_types_stm.h
539+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/stm
540+ )
541+ install (FILES
542+ decoder/include/opencsd/etmv3/trc_pkt_types_etmv3.h
543+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/etmv3
544+ )
545+ install (FILES
546+ decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h
547+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/etmv4
548+ )
549+ install (FILES
550+ decoder/include/opencsd/ete/trc_pkt_types_ete.h
551+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/ete
552+ )
553+ install (FILES
554+ decoder/include/opencsd/c_api/ocsd_c_api_types.h
555+ decoder/include/opencsd/c_api/opencsd_c_api.h
556+ decoder/include/opencsd/c_api/ocsd_c_api_custom.h
557+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /opencsd/c_api
558+ )
510559
511560install (EXPORT OpenCSDTargets
512561 FILE OpenCSDTargets.cmake
0 commit comments