From 5664919715a50ec55dcf286374423b6542aa0412 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Mon, 6 Jun 2022 18:54:50 +0200 Subject: [PATCH] try to fix win build --- CMakeLists.txt | 69 ++++++++++++++++++++++++-------------------------- include/vkvg.h | 10 +++++--- vkh | 2 +- 3 files changed, 40 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53b1735..04aafc1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,23 +223,22 @@ IF (VKVG_USE_GLUTESS) 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 $) + 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) @@ -295,40 +294,43 @@ FUNCTION (setup_lib LibName) ${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 - $<$:${FREETYPE_INCLUDE_DIRS}> - $<$:${HarfBuzz_INCLUDE_DIRS}> - $<$:${Fontconfig_INCLUDE_DIRS}> - $<$>:${CMAKE_CURRENT_SOURCE_DIR}/src/nsvg> - $<$:${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 +# $<$:${FREETYPE_INCLUDE_DIRS}> +# $<$:${HarfBuzz_INCLUDE_DIRS}> +# $<$:${Fontconfig_INCLUDE_DIRS}> +# $<$>:${CMAKE_CURRENT_SOURCE_DIR}/src/nsvg> +# $<$:${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} $) + 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} $) + 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) @@ -342,12 +344,12 @@ ELSE() SET_PROPERTY(TARGET glutess PROPERTY POSITION_INDEPENDENT_CODE ON) ENDIF() - ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} $) + 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} $) + 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") @@ -358,7 +360,6 @@ ELSE() ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - IF (VKVG_BUILD_TESTS) ADD_SUBDIRECTORY(tests) ELSEIF (VKVG_BUILD_OFFSCREEN_TEST) @@ -470,7 +471,3 @@ ELSE() ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") ENDIF() - -IF (SHADERS_H) - ADD_DEPENDENCIES("${PROJECT_NAME}_obj" BuildShadersHeader) -ENDIF() diff --git a/include/vkvg.h b/include/vkvg.h index c8c715d..a30d73b 100644 --- a/include/vkvg.h +++ b/include/vkvg.h @@ -67,15 +67,17 @@ extern "C" { #include #ifndef vkvg_public - //#ifdef VKVG_SHARED_BUILD + #ifdef VKVG_SHARED_BUILD #if (defined(_WIN32) || defined(_WIN64)) - #define vkvg_public __declspec(dllimport) + #define vkvg_public __declspec(dllexport) #else #define vkvg_public __attribute__((visibility("default"))) #endif - /*#else + #elif (defined(VKVG_SHARED_LINKING) && (defined(_WIN32) || defined(_WIN64))) + #define vkvg_public __declspec(dllimport) + #else #define vkvg_public - #endif*/ + #endif #endif diff --git a/vkh b/vkh index 677a354..5ce5386 160000 --- a/vkh +++ b/vkh @@ -1 +1 @@ -Subproject commit 677a3547d5a930494177aeb4f9e802922dc975c3 +Subproject commit 5ce5386f0a0f46b36ec42dd046ef56030ab7a496 -- 2.47.3