From a1a7828ab017cfe4affe778c26dc096fb5d23c68 Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Fri, 14 Jul 2023 10:49:06 -0400 Subject: [PATCH] Fix the way headers are installed Fix missing bx headers when compiling SHARED Fix compat and tinystl being installed in include root Move submodule specific installs to their respecive config files. --- CMakeLists.txt | 12 ------------ cmake/bgfx/bgfx.cmake | 7 +++++++ cmake/bimg/bimg.cmake | 3 ++- cmake/bx/bx.cmake | 12 ++++++++---- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ac95fb..cb6fcc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -160,18 +160,6 @@ if(BGFX_INSTALL) install(FILES ${BGFX_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/licences/${PROJECT_NAME}) - # 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}" - ) - install(DIRECTORY ${BIMG_DIR}/include/bimg DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - install(DIRECTORY ${BGFX_DIR}/include/bgfx DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - - # header required for shader compilation - install(FILES ${BGFX_DIR}/src/bgfx_shader.sh ${BGFX_DIR}/src/bgfx_compute.sh - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/bgfx" - ) - # install tools if(BGFX_CMAKE_USER_SCRIPT) install(FILES ${BGFX_CMAKE_USER_SCRIPT} DESTINATION "${config_install_dir}") diff --git a/cmake/bgfx/bgfx.cmake b/cmake/bgfx/bgfx.cmake index 8c42704..bb859ed 100755 --- a/cmake/bgfx/bgfx.cmake +++ b/cmake/bgfx/bgfx.cmake @@ -217,4 +217,11 @@ if(BGFX_INSTALL) INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) + + install(DIRECTORY ${BGFX_DIR}/include/bgfx DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + + # header required for shader compilation + install(FILES ${BGFX_DIR}/src/bgfx_shader.sh ${BGFX_DIR}/src/bgfx_compute.sh + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/bgfx" + ) endif() diff --git a/cmake/bimg/bimg.cmake b/cmake/bimg/bimg.cmake index a67259b..6f52fe1 100644 --- a/cmake/bimg/bimg.cmake +++ b/cmake/bimg/bimg.cmake @@ -43,7 +43,7 @@ target_link_libraries( ${MINIZ_LIBRARIES} # ) -if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") +if(BGFX_INSTALL) install( TARGETS bimg EXPORT "${TARGETS_EXPORT_NAME}" @@ -53,4 +53,5 @@ if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) + install(DIRECTORY ${BIMG_DIR}/include/bimg DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") endif() diff --git a/cmake/bx/bx.cmake b/cmake/bx/bx.cmake index 8434d44..e867912 100644 --- a/cmake/bx/bx.cmake +++ b/cmake/bx/bx.cmake @@ -81,7 +81,7 @@ target_include_directories( $ # $ # $ # - $ # + $ # ) # All configurations @@ -121,14 +121,18 @@ endif() # Put in a "bgfx" folder in Visual Studio set_target_properties(bx PROPERTIES FOLDER "bgfx") -if(NOT BGFX_LIBRARY_TYPE MATCHES "SHARED") +if(BGFX_INSTALL) 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}" ) + # We will make sure tinystl and compat are not installed in /usr/include + install(DIRECTORY "${BX_DIR}/include/bx" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + install(DIRECTORY "${BX_DIR}/include/compat/${BX_COMPAT_PLATFORM}" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/bx/compat" + ) + install(DIRECTORY "${BX_DIR}/include/tinystl" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/bx") endif()