ADD_SUBDIRECTORY (external/glutess)
ENDIF ()
-FILE(GLOB VKVG_OBJ_SRC src/*.c src/deps/*.c)
-SET (VKVG_PUBLIC_HEADERS "include/vkvg.h")
+FILE(GLOB VKVG_SRC src/*.c src/deps/*.c)
+SET (VKVG_PUBLIC_HEADERS "include/vkvg.h;include/vkvg-svg.h")
IF (VKVG_SVG)
ADD_DEFINITIONS (-DVKVG_SVG)
- ADD_SUBDIRECTORY (external/vkvg-svg)
- LIST (APPEND VKVG_SRC $<TARGET_OBJECTS:vkvg-svg>)
+ FILE(GLOB SVG_SRC external/vkvg-svg/src/*.c)
ELSE()
- SET (VKVG_PUBLIC_HEADERS "${VKVG_PUBLIC_HEADERS};include/vkvg-svg.h")
- FILE(GLOB NSVG_SRC src/nsvg/*.c)
- LIST (APPEND VKVG_OBJ_SRC ${NSVG_SRC})
+ FILE(GLOB SVG_SRC src/nsvg/*.c)
ENDIF()
+LIST (APPEND VKVG_SRC ${SVG_SRC})
+
IF (VKVG_RECORDING)
ADD_DEFINITIONS (-DVKVG_RECORDING)
FILE(GLOB RECORDING_SRC src/recording/*.c)
- LIST (APPEND VKVG_OBJ_SRC ${RECORDING_SRC})
+ LIST (APPEND VKVG_SRC ${RECORDING_SRC})
ENDIF()
CONFIGURE_FILE(vkvg.pc.in vkvg.pc @ONLY)
${Vulkan_LIBRARIES}
vkh
)
+ IF (SHADERS_H)
+ ADD_DEPENDENCIES("${LibName}" BuildShadersHeader)
+ ENDIF()
+
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_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)
+# 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_USE_GLUTESS}>:${CMAKE_CURRENT_SOURCE_DIR}/external/glutess/include>
+# PUBLIC
+# ${Vulkan_INCLUDE_DIRS}
+# ${CMAKE_CURRENT_SOURCE_DIR}/include
+# ${CMAKE_CURRENT_SOURCE_DIR}/vkh/include
+# )
+
+LIST(APPEND ${VKVG_SRC} ${SHADERS} ${SHADERS_H})
IF (vkvg_has_root_project)
- IF (VKVG_BUILD_SHARED_LIBS)
- ADD_LIBRARY("${PROJECT_NAME}" SHARED ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
+ IF (VKVG_BUILD_SHARED_LIB)
+ ADD_LIBRARY("${PROJECT_NAME}" SHARED ${VKVG_SRC})
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)
+ TARGET_COMPILE_DEFINITIONS("${PROJECT_NAME}" PUBLIC -DVKVG_SHARED_LINKING)
IF (TARGET glutess)
SET_PROPERTY(TARGET glutess PROPERTY POSITION_INDEPENDENT_CODE ON)
ENDIF()
setup_lib ("${PROJECT_NAME}")
ELSE()
- ADD_LIBRARY("${PROJECT_NAME}" STATIC ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
+ ADD_LIBRARY("${PROJECT_NAME}" STATIC ${VKVG_SRC})
SET_PROPERTY(TARGET "${PROJECT_NAME}" PROPERTY POSITION_INDEPENDENT_CODE OFF)
SET_PROPERTY(TARGET vkh PROPERTY POSITION_INDEPENDENT_CODE OFF)
IF (TARGET glutess)
SET_PROPERTY(TARGET glutess PROPERTY POSITION_INDEPENDENT_CODE ON)
ENDIF()
- ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
+ ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC})
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} $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
+ ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC})
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")
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
IF (VKVG_BUILD_TESTS)
ADD_SUBDIRECTORY(tests)
ELSEIF (VKVG_BUILD_OFFSCREEN_TEST)
ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
ENDIF()
-
-IF (SHADERS_H)
- ADD_DEPENDENCIES("${PROJECT_NAME}_obj" BuildShadersHeader)
-ENDIF()