From 62e9777a73a887cdebd9163a7db05b84fea1f86b Mon Sep 17 00:00:00 2001 From: Mitch J Date: Sat, 17 Feb 2024 18:47:00 -0500 Subject: [PATCH 1/2] separate static and dynamic libs by filename --- src/CMakeLists.txt | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3baebe6..c94b6a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,23 +8,24 @@ file(GLOB WINDOWS_INCLUDE windows/*.hpp) # Used to help with the creation of the srcML library. # - LIB_NAME is the name of the library and target # - LIB_TYPE is either STATIC or SHARED. +# - LIB_OUTPUT_NAME is the output filename for the compiled library. # -macro(build_lib LIB_NAME LIB_TYPE) +macro(build_lib LIB_NAME LIB_TYPE LIB_OUTPUT_NAME) add_library(${LIB_NAME} ${LIB_TYPE} ${HANDLER_SOURCE} ${HANDLER_INCLUDE} ${WINDOWS_SOURCE} ${WINDOWS_INCLUDE}) -if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") - set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME libsrcsax LINK_FLAGS_DEBUG "/SAFESEH:NO") -elseif(APPLE) - set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME srcsax MACOSX_RPATH OFF) -else() - set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME srcsax) -endif() + if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") + set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} LINK_FLAGS_DEBUG "/SAFESEH:NO") + elseif(APPLE) + set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} MACOSX_RPATH OFF) + else() + set_target_properties(${LIB_NAME} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME}) + endif() endmacro() -build_lib(srcsax_static STATIC) -build_lib(srcsax_shared SHARED) +build_lib(srcsax_static STATIC srcsax_static) +build_lib(srcsax_shared SHARED srcsax) target_link_libraries(srcsax_shared PRIVATE ${LIBXML2_LIBRARIES}) install(TARGETS srcsax_shared srcsax_static RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) From 431be7119eca9d3e15c88d17fea5598c5a1f73b7 Mon Sep 17 00:00:00 2001 From: Mitch J Date: Fri, 26 Apr 2024 11:53:23 -0400 Subject: [PATCH 2/2] Only use the "srcsax_static" lib name on Windows --- src/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a8b585d..8532546 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,7 +26,11 @@ endmacro() find_package(LibXml2 REQUIRED) -build_lib(srcsax_static STATIC srcsax_static) +if(WIN32) + build_lib(srcsax_static STATIC srcsax_static) +else() + build_lib(srcsax_static STATIC srcsax) +endif() target_link_libraries(srcsax_static PRIVATE LibXml2::LibXml2) build_lib(srcsax_shared SHARED srcsax)