Skip to content

Commit

Permalink
[cmake] Don't build shared if BUILD_SHARED_LIBS=OFF
Browse files Browse the repository at this point in the history
  • Loading branch information
vmagno committed Jun 25, 2024
1 parent b801fed commit 477d7f0
Showing 1 changed file with 30 additions and 16 deletions.
46 changes: 30 additions & 16 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,24 +60,34 @@ if(MSVC)
endif()

add_library(libudunits2-static STATIC ${libudunits2_src})
target_link_libraries(libudunits2-static ${EXPAT_LIBRARIES} ${MATH_LIBRARY} ${CMAKE_DL_LIBS})
target_link_libraries(libudunits2-static PUBLIC ${EXPAT_LIBRARIES} ${MATH_LIBRARY} ${CMAKE_DL_LIBS})
target_compile_options(libudunits2-static PUBLIC -fpic)

add_library(libudunits2-shared SHARED $<TARGET_OBJECTS:libudunits2-static>)
target_compile_options(libudunits2-shared PUBLIC -fpic)
set_target_properties(libudunits2-static libudunits2-shared PROPERTIES
set_target_properties(libudunits2-static PROPERTIES
LIBRARY_OUTPUT_NAME udunits2
ARCHIVE_OUTPUT_NAME udunits2
RUNTIME_OUTPUT_NAME udunits2)
target_link_libraries(libudunits2-shared ${EXPAT_LIBRARIES} ${MATH_LIBRARY} ${CMAKE_DL_LIBS})
add_library(libudunits2 ALIAS libudunits2-shared)

IF(MSVC)
SET_TARGET_PROPERTIES(libudunits2-static libudunits2-shared PROPERTIES LINK_FLAGS_DEBUG " /NODEFAULTLIB:MSVCRT"
)
ENDIF()
if (NOT BUILD_SHARED_LIBS)
add_library(libudunits2 ALIAS libudunits2-static)
endif()

if (BUILD_SHARED_LIBS)
add_library(libudunits2-shared SHARED $<TARGET_OBJECTS:libudunits2-static>)
target_compile_options(libudunits2-shared PUBLIC -fpic)
set_target_properties(libudunits2-shared PROPERTIES
LIBRARY_OUTPUT_NAME udunits2
ARCHIVE_OUTPUT_NAME udunits2
RUNTIME_OUTPUT_NAME udunits2)
target_link_libraries(libudunits2-shared ${EXPAT_LIBRARIES} ${MATH_LIBRARY} ${CMAKE_DL_LIBS})
add_library(libudunits2 ALIAS libudunits2-shared)

IF(MSVC)
SET_TARGET_PROPERTIES(libudunits2-static libudunits2-shared PROPERTIES LINK_FLAGS_DEBUG " /NODEFAULTLIB:MSVCRT"
)
ENDIF()
endif()

if (CUNIT_LIBRARY)
if (CUNIT_LIBRARY AND BUILD_SHARED_LIBS)
add_executable(testUnits testUnits.c)
target_link_libraries (testUnits libudunits2-shared)
target_link_libraries (testUnits ${CUNIT_LIBRARY})
Expand All @@ -93,10 +103,14 @@ install(TARGETS libudunits2-static EXPORT udunits2-targets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)
install(TARGETS libudunits2-shared EXPORT udunits2-targets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)

if (BUILD_SHARED_LIBS)
install(TARGETS libudunits2-shared EXPORT udunits2-targets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)
endif()

install(FILES udunits2.h converter.h DESTINATION include)
install(FILES
udunits2.xml
Expand Down

0 comments on commit 477d7f0

Please sign in to comment.