diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index c0ed851..20e57cc 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -15,5 +15,7 @@ target_include_directories(nova-editor ) target_link_libraries(nova-editor - PUBLIC nova + PUBLIC nova::nova ) + +# TODO: Install nova-editor diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 9d49283..792e390 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -10,10 +10,72 @@ list(TRANSFORM NOVA_ENGINE_SRC PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/src/) add_library(nova SHARED ${NOVA_ENGINE_SRC}) target_include_directories(nova - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PUBLIC + $ + $ + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src ) set_target_properties(nova PROPERTIES DEFINE_SYMBOL NOVA_EXPORT_SYMBOLS ) + +add_library(nova::nova ALIAS nova) + +# {INSTALL_PREFIX} +# |-- include +# | `-- nova +# | `-- *.hpp +# |-- lib +# | `-- libnova.so +# `-- share +# `-- cmake +# `-- nova +# |-- nova-config.cmake +# |-- nova-config-version.cmake +# |-- nova-targets.cmake +# `-- nova-targets-release.cmake + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/nova + DESTINATION include + FILES_MATCHING PATTERN "*.hpp" +) + +install( + TARGETS nova + EXPORT nova-targets + # LIBRARY DESTINATION lib + # ARCHIVE DESTINATION lib + # RUNTIME DESTINATION bin + # INCLUDES DESTINATION include +) + +install( + EXPORT nova-targets + FILE nova-targets.cmake + NAMESPACE nova:: + DESTINATION share/cmake/nova +) + +include(CMakePackageConfigHelpers) + +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/nova-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/nova-config.cmake + INSTALL_DESTINATION share/cmake/nova +) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/nova-config-version.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/nova-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/nova-config-version.cmake + DESTINATION share/cmake/nova +) diff --git a/engine/cmake/nova-config.cmake.in b/engine/cmake/nova-config.cmake.in new file mode 100644 index 0000000..792cd61 --- /dev/null +++ b/engine/cmake/nova-config.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/nova-targets.cmake") + +check_required_components(nova)