From 13fda4c089db18eddd3ff9b499e3281f5194ac17 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Sat, 18 Feb 2023 19:33:46 -0500 Subject: [PATCH] install: Move install(TARGET) calls to target scope CMake prior to 3.13 require to be done in the same directory they were created --- CMakeLists.txt | 64 +++----------------------------- cmake/bgfx/3rdparty/webgpu.cmake | 12 ++++++ cmake/bgfx/bgfx.cmake | 12 ++++++ cmake/bgfx/examples.cmake | 7 ++++ cmake/bgfx/geometryc.cmake | 4 ++ cmake/bgfx/geometryv.cmake | 4 ++ cmake/bgfx/shaderc.cmake | 4 ++ cmake/bgfx/texturev.cmake | 4 ++ cmake/bimg/bimg.cmake | 12 ++++++ cmake/bimg/bimg_decode.cmake | 12 ++++++ cmake/bimg/bimg_encode.cmake | 12 ++++++ cmake/bimg/texturec.cmake | 4 ++ cmake/bx/bin2c.cmake | 4 ++ cmake/bx/bx.cmake | 12 ++++++ 14 files changed, 109 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aee0228..b0432a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,10 +105,6 @@ if(BGFX_BUILD_TOOLS AND BGFX_CUSTOM_TARGETS) set_target_properties(tools PROPERTIES FOLDER "bgfx/tools") endif() -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bx) -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bimg) -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfx) - if(BGFX_INSTALL) include(GNUInstallDirs) @@ -124,7 +120,13 @@ if(BGFX_INSTALL) set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") set(namespace "${PROJECT_NAME}::") +endif() +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bx) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bimg) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfx) + +if(BGFX_INSTALL) # Include module with fuction 'write_basic_package_version_file' include(CMakePackageConfigHelpers) @@ -158,38 +160,6 @@ if(BGFX_INSTALL) install(FILES ${BGFX_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/licences/${PROJECT_NAME}) - install( - TARGETS bgfx - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - INCLUDES - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - ) - if(NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") - install( - TARGETS bx bimg bimg_encode bimg_decode - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - INCLUDES - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - ) - endif() - if(BGFX_CONFIG_RENDERER_WEBGPU) - install( - TARGETS webgpu - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - INCLUDES - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - ) - endif() - # install headers (this should be done as a target probably... ^) install(DIRECTORY ${BX_DIR}/include/bx ${BX_DIR}/include/compat ${BX_DIR}/include/tinystl DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" @@ -207,28 +177,6 @@ if(BGFX_INSTALL) install(FILES ${BGFX_CMAKE_USER_SCRIPT} DESTINATION "${config_install_dir}") endif() install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfxToolUtils.cmake DESTINATION "${config_install_dir}") - if(BGFX_BUILD_TOOLS_BIN2C) - install(TARGETS bin2c EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - endif() - if(BGFX_BUILD_TOOLS_SHADER) - install(TARGETS shaderc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - endif() - if(BGFX_BUILD_TOOLS_GEOMETRY) - install(TARGETS geometryc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - install(TARGETS geometryv EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - endif() - if(BGFX_BUILD_TOOLS_TEXTURE) - install(TARGETS texturec EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - install(TARGETS texturev EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") - endif() - - # install examples - if(BGFX_BUILD_EXAMPLES AND BGFX_INSTALL_EXAMPLES) - install(DIRECTORY ${BGFX_DIR}/examples/runtime/ DESTINATION examples) - foreach(EXAMPLE ${BGFX_EXAMPLES}) - install(TARGETS example-${EXAMPLE} DESTINATION examples) - endforeach() - endif() # Config # * /lib/cmake/bgfx/bgfxConfig.cmake diff --git a/cmake/bgfx/3rdparty/webgpu.cmake b/cmake/bgfx/3rdparty/webgpu.cmake index 84a245e..1de320a 100644 --- a/cmake/bgfx/3rdparty/webgpu.cmake +++ b/cmake/bgfx/3rdparty/webgpu.cmake @@ -26,3 +26,15 @@ target_include_directories( # These properties are not allowed on interface # set_target_properties(webgpu PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-") + +if(BGFX_INSTALL AND BGFX_CONFIG_RENDERER_WEBGPU) + install( + TARGETS webgpu + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif() diff --git a/cmake/bgfx/bgfx.cmake b/cmake/bgfx/bgfx.cmake index eae23fb..8c42704 100755 --- a/cmake/bgfx/bgfx.cmake +++ b/cmake/bgfx/bgfx.cmake @@ -206,3 +206,15 @@ if(XCODE) ${BGFX_DIR}/src/renderer_vk.cpp PROPERTIES LANGUAGE OBJCXX XCODE_EXPLICIT_FILE_TYPE sourcecode.cpp.objcpp ) endif() + +if(BGFX_INSTALL) + install( + TARGETS bgfx + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif() diff --git a/cmake/bgfx/examples.cmake b/cmake/bgfx/examples.cmake index 18014ae..81e1d47 100755 --- a/cmake/bgfx/examples.cmake +++ b/cmake/bgfx/examples.cmake @@ -345,4 +345,11 @@ if(BGFX_BUILD_EXAMPLES) foreach(EXAMPLE ${BGFX_EXAMPLES}) add_example(${EXAMPLE}) endforeach() + + if(BGFX_INSTALL_EXAMPLES) + install(DIRECTORY ${BGFX_DIR}/examples/runtime/ DESTINATION examples) + foreach(EXAMPLE ${BGFX_EXAMPLES}) + install(TARGETS example-${EXAMPLE} DESTINATION examples) + endforeach() + endif() endif() diff --git a/cmake/bgfx/geometryc.cmake b/cmake/bgfx/geometryc.cmake index 0058f5c..06e4001 100644 --- a/cmake/bgfx/geometryc.cmake +++ b/cmake/bgfx/geometryc.cmake @@ -34,3 +34,7 @@ endif() if(IOS) set_target_properties(geometryc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER geometryc) endif() + +if(BGFX_INSTALL) + install(TARGETS geometryc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bgfx/geometryv.cmake b/cmake/bgfx/geometryv.cmake index b6b7757..764ff7c 100644 --- a/cmake/bgfx/geometryv.cmake +++ b/cmake/bgfx/geometryv.cmake @@ -36,3 +36,7 @@ elseif(EMSCRIPTEN) elseif(IOS) set_target_properties(geometryv PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER geometryv) endif() + +if(BGFX_INSTALL) + install(TARGETS geometryv EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bgfx/shaderc.cmake b/cmake/bgfx/shaderc.cmake index c04fd2e..bed59a0 100644 --- a/cmake/bgfx/shaderc.cmake +++ b/cmake/bgfx/shaderc.cmake @@ -59,3 +59,7 @@ if(ANDROID) elseif(IOS) set_target_properties(shaderc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER shaderc) endif() + +if(BGFX_INSTALL) + install(TARGETS shaderc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bgfx/texturev.cmake b/cmake/bgfx/texturev.cmake index ab5b378..a45447b 100644 --- a/cmake/bgfx/texturev.cmake +++ b/cmake/bgfx/texturev.cmake @@ -36,3 +36,7 @@ elseif(EMSCRIPTEN) elseif(IOS) set_target_properties(texturev PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER texturev) endif() + +if(BGFX_INSTALL) + install(TARGETS texturev EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bimg/bimg.cmake b/cmake/bimg/bimg.cmake index f310072..a67259b 100644 --- a/cmake/bimg/bimg.cmake +++ b/cmake/bimg/bimg.cmake @@ -42,3 +42,15 @@ target_link_libraries( ${ASTC_ENCODER_LIBRARIES} # ${MINIZ_LIBRARIES} # ) + +if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") + install( + TARGETS bimg + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif() diff --git a/cmake/bimg/bimg_decode.cmake b/cmake/bimg/bimg_decode.cmake index a10bdaa..a511e8f 100644 --- a/cmake/bimg/bimg_decode.cmake +++ b/cmake/bimg/bimg_decode.cmake @@ -43,3 +43,15 @@ target_link_libraries( ${MINIZ_LIBRARIES} # ${TINYEXR_LIBRARIES} # ) + +if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") + install( + TARGETS bimg_decode + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif() diff --git a/cmake/bimg/bimg_encode.cmake b/cmake/bimg/bimg_encode.cmake index 8f7ae94..82d9fe0 100644 --- a/cmake/bimg/bimg_encode.cmake +++ b/cmake/bimg/bimg_encode.cmake @@ -85,3 +85,15 @@ foreach(flag "-Wno-class-memaccess" "-Wno-deprecated-copy") endforeach() endif() endforeach() + +if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") + install( + TARGETS bimg_encode + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif() diff --git a/cmake/bimg/texturec.cmake b/cmake/bimg/texturec.cmake index 8ae2da0..5a8ed81 100644 --- a/cmake/bimg/texturec.cmake +++ b/cmake/bimg/texturec.cmake @@ -31,3 +31,7 @@ if(ANDROID) elseif(IOS) set_target_properties(texturec PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER texturec) endif() + +if(BGFX_INSTALL) + install(TARGETS texturec EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bx/bin2c.cmake b/cmake/bx/bin2c.cmake index ac86144..9c66eed 100644 --- a/cmake/bx/bin2c.cmake +++ b/cmake/bx/bin2c.cmake @@ -31,3 +31,7 @@ if(ANDROID) elseif(IOS) set_target_properties(bin2c PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER bin2c) endif() + +if(BGFX_INSTALL) + install(TARGETS bin2c EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() diff --git a/cmake/bx/bx.cmake b/cmake/bx/bx.cmake index e69cc13..8434d44 100644 --- a/cmake/bx/bx.cmake +++ b/cmake/bx/bx.cmake @@ -120,3 +120,15 @@ endif() # Put in a "bgfx" folder in Visual Studio set_target_properties(bx PROPERTIES FOLDER "bgfx") + +if(NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") + install( + TARGETS bx + EXPORT "${TARGETS_EXPORT_NAME}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) +endif()