]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
rely on CMAKE BUILD_SHARED_LIBS variable instead of building both lib
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 31 Dec 2023 14:54:19 +0000 (15:54 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 31 Dec 2023 14:54:19 +0000 (15:54 +0100)
CMakeLists.txt

index 5563e16553c99c7c6d2a6d27327b19ea5b2d9dc0..69196c4f8fac1048d0c2957d5419047ebb0e7c7d 100644 (file)
@@ -1,8 +1,7 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
 
-OPTION (VKH_BUILD_SHARED_LIB "Build using shared libraries" OFF)
+#OPTION (VKH_BUILD_SHARED_LIB "Build using shared libraries" OFF)
 OPTION(VKH_USE_VMA "enable Vulkan Memory Allocator" ON)
-
 SET(LANG "C")
 SET(CMAKE_${LANG}_STANDARD 11)
 
@@ -11,7 +10,7 @@ PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library" LANGUAGES ${LANG}
 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
 
 IF(NOT CMAKE_BUILD_TYPE)
-  SET(CMAKE_BUILD_TYPE Release)
+       SET(CMAKE_BUILD_TYPE Release)
 ENDIF()
 
 IF (CYGWIN)
@@ -30,7 +29,7 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
 ELSE()
     UNSET(ENABLE_VALIDATION CACHE)
     IF (UNIX)
-        ADD_COMPILE_OPTIONS(-w -fvisibility=hidden)
+               #ADD_COMPILE_OPTIONS(-w -fvisibility=hidden)
         #ADD_COMPILE_OPTIONS(-flto)
     ELSEIF(MSVC)
         ADD_COMPILE_OPTIONS(/W0)
@@ -55,77 +54,54 @@ FILE(GLOB VKH_SRC src/*.c src/deps/*.c)
 CONFIGURE_FILE(vkh.pc.in vkh.pc @ONLY)
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/vkh.pc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
 
-FUNCTION (setup_lib LibName)
-    SET_TARGET_PROPERTIES("${LibName}" PROPERTIES
-            OUTPUT_NAME ${PROJECT_NAME}
-            VERSION ${PROJECT_VERSION}
-            SOVERSION 1
-            C_STANDARD 11
-            C_EXTENSIONS OFF
-            PUBLIC_HEADER include/vkh.h
-                       LINKER_LANGUAGE C
-    )
-    TARGET_INCLUDE_DIRECTORIES("${LibName}"
-        PRIVATE
-            ${CMAKE_CURRENT_SOURCE_DIR}/src
-        PUBLIC
-            ${CMAKE_CURRENT_SOURCE_DIR}/include
-                       ${Vulkan_INCLUDE_DIRS}
-    )
-       if (VKH_USE_VMA)
-               TARGET_LINK_LIBRARIES("${LibName}"
-                       PRIVATE
-                               libVMA
-               )
-       ENDIF()
-    TARGET_LINK_LIBRARIES("${LibName}"
-        PUBLIC
-            ${Vulkan_LIBRARIES}
-            Threads::Threads
-    )
-    INSTALL(TARGETS "${LibName}"
-        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-ENDFUNCTION(setup_lib)
-
 GET_DIRECTORY_PROPERTY (vkh_has_root_project PARENT_DIRECTORY)
 
 if (VKH_USE_VMA)
     ADD_DEFINITIONS (-DVKH_USE_VMA)
     SET(VKH_USE_VMA ON PARENT_SCOPE)
-       ADD_LIBRARY(libVMA STATIC src/vma/VmaUsage.cpp)
+       ADD_LIBRARY(VMA STATIC src/vma/VmaUsage.cpp)
     SET_TARGET_PROPERTIES(
-        libVMA PROPERTIES
+               VMA PROPERTIES
             POSITION_INDEPENDENT_CODE ON
                        LINKER_LANGUAGE C
     )
-    TARGET_INCLUDE_DIRECTORIES(libVMA
+       TARGET_INCLUDE_DIRECTORIES(VMA
         PUBLIC
                        ${CMAKE_CURRENT_SOURCE_DIR}/src/vma
             ${Vulkan_INCLUDE_DIRS}
     )
 ENDIF()
 
-IF (vkh_has_root_project)
-    IF (VKH_BUILD_SHARED_LIBS)
-        ADD_LIBRARY("${PROJECT_NAME}" SHARED ${VKH_SRC})
-        SET_PROPERTY(TARGET "${PROJECT_NAME}" PROPERTY POSITION_INDEPENDENT_CODE ON)
-        TARGET_COMPILE_DEFINITIONS("${PROJECT_NAME}" PUBLIC -DVKH_SHARED_LINKING)
-        setup_lib ("${PROJECT_NAME}")
-    ELSE()
-        ADD_LIBRARY("${PROJECT_NAME}" STATIC ${VKH_SRC})
-        SET_PROPERTY(TARGET "${PROJECT_NAME}" PROPERTY POSITION_INDEPENDENT_CODE OFF)
-        setup_lib ("${PROJECT_NAME}")
-    ENDIF()
-ELSE()
-    ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKH_SRC})
-    TARGET_COMPILE_DEFINITIONS("${PROJECT_NAME}_shared" PUBLIC -DVKH_SHARED_BUILD)
-    SET_PROPERTY(TARGET "${PROJECT_NAME}_shared" PROPERTY POSITION_INDEPENDENT_CODE ON)
-    setup_lib ("${PROJECT_NAME}_shared")
-    ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKH_SRC})
-    target_compile_definitions("${PROJECT_NAME}_static" PUBLIC -DVKH_STATIC_BUILD)
-    SET_PROPERTY(TARGET "${PROJECT_NAME}_static" PROPERTY POSITION_INDEPENDENT_CODE OFF)
-    setup_lib ("${PROJECT_NAME}_static")
+ADD_LIBRARY("${PROJECT_NAME}" ${VKH_SRC})
+SET_TARGET_PROPERTIES("${PROJECT_NAME}" PROPERTIES
+               OUTPUT_NAME ${PROJECT_NAME}
+               VERSION ${PROJECT_VERSION}
+               SOVERSION 1
+               C_STANDARD 11
+               C_EXTENSIONS OFF
+               PUBLIC_HEADER include/vkh.h
+               LINKER_LANGUAGE C
+)
+TARGET_INCLUDE_DIRECTORIES("${PROJECT_NAME}"
+       PRIVATE
+               ${CMAKE_CURRENT_SOURCE_DIR}/src
+       PUBLIC
+               ${CMAKE_CURRENT_SOURCE_DIR}/include
+               ${Vulkan_INCLUDE_DIRS}
+)
+if (VKH_USE_VMA)
+       TARGET_LINK_LIBRARIES("${PROJECT_NAME}"
+               PRIVATE
+                       VMA
+       )
 ENDIF()
+TARGET_LINK_LIBRARIES("${PROJECT_NAME}"
+       PUBLIC
+               ${Vulkan_LIBRARIES}
+               Threads::Threads
+)
+INSTALL(TARGETS "${PROJECT_NAME}"
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})