From: Jean-Philippe Bruyère Date: Tue, 4 Jan 2022 10:07:17 +0000 (+0100) Subject: cmake cleanup X-Git-Tag: v0.3.0-beta~50 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=13bad923adf6ffba5be990bfd98e2af054270e01;p=jp%2Fvkvg.git cmake cleanup --- diff --git a/.gitignore b/.gitignore index 48cac0c..83978f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ build/ *.user +CMakeLists.txt.user.* ignore .vs/ *.json diff --git a/CMakeLists.txt b/CMakeLists.txt index cc48f30..7277847 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ SET(LANG "CXX") SET(CMAKE_C_STANDARD 11) SET(CMAKE_CXX_STANDARD 11) +OPTION (BUILD_SHARED_LIBS "Build using shared libraries" ON) + PROJECT(vkvg VERSION 0.3.0 DESCRIPTION "Vulkan Vector Graphic") ADD_COMPILE_DEFINITIONS( @@ -175,71 +177,47 @@ SET (VKVG_PUBLIC_HEADERS "include/vkvg.h;include/vkvg-nsvg.h") 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) - SET_TARGET_PROPERTIES(${LibName} PROPERTIES - OUTPUT_NAME ${PROJECT_NAME} - VERSION ${vkvg_VERSION_MAJOR}.${vkvg_VERSION_MINOR} - SOVERSION ${vkvg_VERSION_MAJOR} - C_STANDARD 11 - #C_EXTENSIONS OFF - PUBLIC_HEADER "${VKVG_PUBLIC_HEADERS}" - ) +ADD_LIBRARY("${PROJECT_NAME}" ${VKVG_SRC} ${SHADERS} ${SHADERS_H} ) + +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES + OUTPUT_NAME ${PROJECT_NAME} + VERSION ${vkvg_VERSION_MAJOR}.${vkvg_VERSION_MINOR} + SOVERSION ${vkvg_VERSION_MAJOR} + C_STANDARD 11 + #C_EXTENSIONS OFF + PUBLIC_HEADER "${VKVG_PUBLIC_HEADERS}" +) - TARGET_INCLUDE_DIRECTORIES(${LibName} PRIVATE +TARGET_INCLUDE_DIRECTORIES("${PROJECT_NAME}" + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/vkh/src + "$<$:${FREETYPE_INCLUDE_DIRS}>" + "$<$:${HarfBuzz_INCLUDE_DIRS}>" + "$<$:${Fontconfig_INCLUDE_DIRS}>" + PUBLIC ${Vulkan_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/vkh/include - ${CMAKE_CURRENT_SOURCE_DIR}/vkh/src - ) - TARGET_LINK_LIBRARIES(${LibName} +) +TARGET_LINK_LIBRARIES("${PROJECT_NAME}" + PUBLIC ${Vulkan_LIBRARIES} - vkh_static - ) - IF (VKVG_USE_FREETYPE) - TARGET_INCLUDE_DIRECTORIES(${LibName} PRIVATE - ${FREETYPE_INCLUDE_DIRS} - ) - TARGET_LINK_LIBRARIES(${LibName} - ${FREETYPE_LIBRARIES} - ) - ENDIF () - IF (VKVG_USE_HARFBUZZ) - TARGET_INCLUDE_DIRECTORIES(${LibName} PRIVATE - ${HarfBuzz_INCLUDE_DIRS} - ) - TARGET_LINK_LIBRARIES(${LibName} - ${HarfBuzz_LIBRARIES} - ) - ENDIF () - IF (VKVG_USE_FONTCONFIG) - TARGET_INCLUDE_DIRECTORIES(${LibName} PRIVATE - ${Fontconfig_INCLUDE_DIRS} - ) - TARGET_LINK_LIBRARIES(${LibName} - ${Fontconfig_LIBRARIES} - ) - ENDIF () - - INSTALL(TARGETS ${LibName} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -ENDFUNCTION () - -ADD_LIBRARY("${PROJECT_NAME}_static" STATIC ${VKVG_SRC} ${SHADERS} ${SHADERS_H} ) -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") - -ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} ${SHADERS} ${SHADERS_H}) -SET_PROPERTY(TARGET "${PROJECT_NAME}_shared" PROPERTY POSITION_INDEPENDENT_CODE ON) -setup_lib ("${PROJECT_NAME}_shared") + vkh + "$<$:-lm>" + PRIVATE + "$<$:${FREETYPE_LIBRARIES}>" + "$<$:${HarfBuzz_LIBRARIES}>" + "$<$:${Fontconfig_LIBRARIES}>" +) +INSTALL(TARGETS "${PROJECT_NAME}" + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) IF (SHADERS_H) - ADD_DEPENDENCIES("${PROJECT_NAME}_shared" BuildShadersHeader) - ADD_DEPENDENCIES("${PROJECT_NAME}_static" BuildShadersHeader) + ADD_DEPENDENCIES("${PROJECT_NAME}" BuildShadersHeader) ENDIF () IF (VKVG_BUILD_TESTS) @@ -252,7 +230,7 @@ ELSEIF (VKVG_BUILD_OFFSCREEN_TEST) ) TARGET_LINK_LIBRARIES(test_offscreen ${Vulkan_LIBRARIES} - vkvg_static + vkvg ) ENDIF (VKVG_BUILD_TESTS) @@ -305,6 +283,12 @@ IF (VKVG_BUILD_DOCS) ENDIF () ENDIF (VKVG_BUILD_DOCS) +IF (BUILD_SHARED_LIBS) + MESSAGE(STATUS "Build Shared library.") +ELSE () + MESSAGE(STATUS "Build Static library.") +ENDIF () + MESSAGE(STATUS "VKVG version\t\t= ${vkvg_VERSION_MAJOR}.${vkvg_VERSION_MINOR}.${vkvg_VERSION_PATCH}") MESSAGE(STATUS "comp flags\t\t= ${CMAKE_${LANG}_FLAGS}") diff --git a/vkh b/vkh index 8fdbe5e..eacf8c4 160000 --- a/vkh +++ b/vkh @@ -1 +1 @@ -Subproject commit 8fdbe5e40018f3b9b7122015bb456757717e9625 +Subproject commit eacf8c433edb8b024c4edaa2564ba7dcaadf51a1