CMake: Fix installation

This commit is contained in:
Olivier Goffart 2020-10-07 18:20:22 +02:00
parent d771143f68
commit 07c4b6cb3d
2 changed files with 33 additions and 28 deletions

View file

@ -24,13 +24,9 @@ add_library(SixtyFPS::SixtyFPS ALIAS SixtyFPS)
target_link_libraries(SixtyFPS INTERFACE sixtyfps-rendering-backend-default)
target_compile_features(SixtyFPS INTERFACE cxx_std_17)
set(api_headers
sixtyfps.h
sixtyfps_properties.h
sixtyfps_signals.h
sixtyfps_string.h
vtable.h
)
file(GLOB api_headers RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/include/"
"${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
foreach(header IN LISTS api_headers)
set_property(TARGET SixtyFPS APPEND PROPERTY PUBLIC_HEADER include/${header})
endforeach()
@ -47,7 +43,8 @@ set(generated_headers
${CMAKE_CURRENT_BINARY_DIR}/generated_include/sixtyfps_default_backend_internal.h
)
file(GLOB generated_headers_dependencies "${CMAKE_CURRENT_SOURCE_DIR}/../../sixtyfps_runtime/corelib/*.rs")
file(GLOB generated_headers_dependencies
"${CMAKE_CURRENT_SOURCE_DIR}/../../sixtyfps_runtime/corelib/*.rs")
add_custom_target(
generated_headers_target
@ -71,22 +68,33 @@ target_include_directories(SixtyFPS INTERFACE
add_executable(SixtyFPS::sixtyfps_compiler ALIAS sixtyfps_compiler)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/SixtyFPSMacro.cmake)
#FIXME: also export and install the compiler
export(TARGETS SixtyFPS sixtyfps-rendering-backend-default #sixtyfps_compiler
export(TARGETS SixtyFPS sixtyfps-rendering-backend-default
NAMESPACE SixtyFPS:: FILE "${CMAKE_BINARY_DIR}/lib/cmake/SixtyFPS/SixtyFPSTargets.cmake")
install(EXPORT SixtyFPSTargets NAMESPACE SixtyFPS:: DESTINATION lib/cmake/SixtyFPS)
install(TARGETS SixtyFPS sixtyfps-rendering-backend-default #sixtyfps_compiler
install(TARGETS SixtyFPS sixtyfps-rendering-backend-default
EXPORT SixtyFPSTargets LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include/sixtyfps)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
get_target_property(SIXTYFPS_SHARED_LIB sixtyfps-rendering-backend-default-shared IMPORTED_LOCATION)
install(FILES ${SIXTYFPS_SHARED_LIB} TYPE LIB)
if (WIN32)
get_filename_component(SIXTYFPS_SHARED_LIB_DIR ${SIXTYFPS_SHARED_LIB} DIRECTORY)
get_filename_component(SIXTYFPS_SHARED_LIB_WE ${SIXTYFPS_SHARED_LIB} NAME_WLE)
install(FILES "${SIXTYFPS_SHARED_LIB_DIR}/${SIXTYFPS_SHARED_LIB_WE}.lib" TYPE LIB)
endif()
get_target_property(SIXTYFPS_COMPILER_PATH sixtyfps_compiler IMPORTED_LOCATION)
install(PROGRAMS ${SIXTYFPS_COMPILER_PATH} TYPE BIN)
configure_package_config_file("cmake/SixtyFPSConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/SixtyFPS/SixtyFPSConfig.cmake" INSTALL_DESTINATION lib/cmake/SixtyFPS)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/SixtyFPS/SixtyFPSConfigVersion.cmake
VERSION 1.0.0
COMPATIBILITY SameMajorVersion
VERSION 0.0.1
COMPATIBILITY ExactVersion
)
install(FILES
@ -96,3 +104,4 @@ install(FILES
DESTINATION lib/cmake/SixtyFPS
)