]> O.S.I.I.S - jp/vkvg.git/commitdiff
try obj lib for vkvg sources and shaders
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 10 Jan 2022 20:32:05 +0000 (21:32 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 10 Jan 2022 20:32:05 +0000 (21:32 +0100)
CMakeLists.txt
external/glutess

index 43f645c4e2b13391c608ca0d4d41e5aa2cea43e8..d3fb0d5225a04155710e792bca84c1ffb1e7f67e 100644 (file)
@@ -202,7 +202,7 @@ IF (VKVG_USE_GLUTESS)
        ADD_SUBDIRECTORY (external/glutess)
 ENDIF ()
 
-FILE(GLOB VKVG_SRC src/*.c)
+FILE(GLOB VKVG_OBJ_SRC src/*.c)
 SET (VKVG_PUBLIC_HEADERS "include/vkvg.h")
 
 IF (VKVG_SVG)
@@ -211,12 +211,13 @@ IF (VKVG_SVG)
 ELSE()
        SET (VKVG_PUBLIC_HEADERS "${VKVG_PUBLIC_HEADERS};include/vkvg-svg.h")
        FILE(GLOB NSVG_SRC src/nsvg/*.c)
-       LIST (APPEND VKVG_SRC ${NSVG_SRC})
+       LIST (APPEND VKVG_OBJ_SRC ${NSVG_SRC})
 ENDIF()
 
 CONFIGURE_FILE(vkvg.pc.in vkvg.pc @ONLY)
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/vkvg.pc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
 
+
 FUNCTION (setup_lib LibName)
        LIST (APPEND VKVG_TARGETS ${LibName})
 
@@ -274,9 +275,28 @@ ENDFUNCTION(setup_lib)
 
 GET_DIRECTORY_PROPERTY (vkvg_has_root_project PARENT_DIRECTORY)
 
+ADD_LIBRARY("${PROJECT_NAME}_obj" OBJECT ${VKVG_OBJ_SRC} ${SHADERS} ${SHADERS_H})
+
+TARGET_INCLUDE_DIRECTORIES("${PROJECT_NAME}_obj"
+       PRIVATE
+               ${CMAKE_CURRENT_SOURCE_DIR}/src
+               ${CMAKE_CURRENT_SOURCE_DIR}/vkh/src
+               $<$<BOOL:${VKVG_USE_FREETYPE}>:${FREETYPE_INCLUDE_DIRS}>
+               $<$<BOOL:${VKVG_USE_HARFBUZZ}>:${HarfBuzz_INCLUDE_DIRS}>
+               $<$<BOOL:${VKVG_USE_FONTCONFIG}>:${Fontconfig_INCLUDE_DIRS}>
+               $<$<NOT:$<BOOL:${VKVG_SVG}>>:${CMAKE_CURRENT_SOURCE_DIR}/src/nsvg>
+               $<$<BOOL:${VKVG_RECORDING}>:${CMAKE_CURRENT_SOURCE_DIR}/src/recording>
+               $<$<BOOL:${VKVG_USE_GLUTESS}>:${CMAKE_CURRENT_SOURCE_DIR}/external/glutess/include>
+       PUBLIC
+               ${Vulkan_INCLUDE_DIRS}
+               ${CMAKE_CURRENT_SOURCE_DIR}/include
+               ${CMAKE_CURRENT_SOURCE_DIR}/vkh/include
+)
+SET_PROPERTY(TARGET "${PROJECT_NAME}_obj" PROPERTY POSITION_INDEPENDENT_CODE ON)
+
 IF (vkvg_has_root_project)
        IF (VKVG_BUILD_SHARED_LIBS)
-               ADD_LIBRARY("${PROJECT_NAME}" SHARED ${VKVG_SRC} ${SHADERS} ${SHADERS_H})
+               ADD_LIBRARY("${PROJECT_NAME}" SHARED ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
                SET_PROPERTY(TARGET "${PROJECT_NAME}" PROPERTY POSITION_INDEPENDENT_CODE ON)
                SET_PROPERTY(TARGET vkh PROPERTY POSITION_INDEPENDENT_CODE ON)
                TARGET_COMPILE_DEFINITIONS("${PROJECT_NAME}" PUBLIC -DVKVG_SHARED_BUILD)
@@ -285,7 +305,7 @@ IF (vkvg_has_root_project)
                ENDIF()
                setup_lib ("${PROJECT_NAME}")
        ELSE()
-               ADD_LIBRARY("${PROJECT_NAME}" STATIC ${VKVG_SRC} ${SHADERS} ${SHADERS_H} )
+               ADD_LIBRARY("${PROJECT_NAME}" STATIC ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
                SET_PROPERTY(TARGET "${PROJECT_NAME}" PROPERTY POSITION_INDEPENDENT_CODE OFF)
                SET_PROPERTY(TARGET vkh PROPERTY POSITION_INDEPENDENT_CODE OFF)
                IF (TARGET glutess)
@@ -299,12 +319,12 @@ ELSE()
                SET_PROPERTY(TARGET glutess PROPERTY POSITION_INDEPENDENT_CODE ON)
        ENDIF()
 
-       ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} ${SHADERS} ${SHADERS_H})
+       ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
        SET_PROPERTY(TARGET "${PROJECT_NAME}_shared" PROPERTY POSITION_INDEPENDENT_CODE ON)
        TARGET_COMPILE_DEFINITIONS("${PROJECT_NAME}_shared" PUBLIC -DVKVG_SHARED_BUILD)
        setup_lib ("${PROJECT_NAME}_shared")
 
-       ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC} ${SHADERS} ${SHADERS_H} )
+       ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
        target_compile_definitions("${PROJECT_NAME}_static" PUBLIC -DVKVG_STATIC_BUILD)
        SET_PROPERTY(TARGET "${PROJECT_NAME}_static" PROPERTY POSITION_INDEPENDENT_CODE OFF)
        setup_lib ("${PROJECT_NAME}_static")
@@ -428,10 +448,7 @@ ELSE()
 ENDIF()
 
 IF (SHADERS_H)
-       FOREACH(VKVG_TARGET IN ${VKVG_TARGETS})
-               MESSAGE(STATUS "TARGETS: ${VKVG_TARGET}")
-               ADD_DEPENDENCIES("${VKVG_TARGET}" BuildShadersHeader)
-       ENDFOREACH()
+       ADD_DEPENDENCIES("${PROJECT_NAME}_obj" BuildShadersHeader)
 ENDIF ()
 
 IF (BUILD_SHARED_LIBS)
index 1d24544c4abca8096096cbb016f3c00d0f5a9c0e..d8a6dc21c3365bcb2d14955b1ada32a0d461f1a1 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 1d24544c4abca8096096cbb016f3c00d0f5a9c0e
+Subproject commit d8a6dc21c3365bcb2d14955b1ada32a0d461f1a1