mirror of
https://github.com/albertodemichelis/squirrel.git
synced 2026-01-11 05:58:39 +01:00
Create package export file
The package export file allows CMake consumers to find Squirrel by calling find_package(squirrel). This will create imported targets for them to link against. Create export files in both the build directory and the install directory.
This commit is contained in:
@ -72,3 +72,38 @@ if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_HEADER_INSTALLER)
|
|||||||
COMPONENT Development
|
COMPONENT Development
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config-version.cmake"
|
||||||
|
VERSION "${squirrel_VERSION}"
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_package_config_file(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/squirrel-config.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config.cmake"
|
||||||
|
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel"
|
||||||
|
)
|
||||||
|
|
||||||
|
export(EXPORT squirrel
|
||||||
|
NAMESPACE squirrel::
|
||||||
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-targets.cmake"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_CMAKE_INSTALLER)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config-version.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel"
|
||||||
|
COMPONENT Development
|
||||||
|
)
|
||||||
|
|
||||||
|
install(EXPORT squirrel
|
||||||
|
NAMESPACE squirrel::
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel"
|
||||||
|
FILE "squirrel-targets.cmake"
|
||||||
|
COMPONENT Development
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|||||||
@ -2,7 +2,7 @@ set(CMAKE_C_STANDARD 99)
|
|||||||
if(NOT DISABLE_DYNAMIC)
|
if(NOT DISABLE_DYNAMIC)
|
||||||
add_executable(sq sq.c)
|
add_executable(sq sq.c)
|
||||||
add_executable(squirrel::interpreter ALIAS sq)
|
add_executable(squirrel::interpreter ALIAS sq)
|
||||||
set_target_properties(sq PROPERTIES LINKER_LANGUAGE C)
|
set_target_properties(sq PROPERTIES LINKER_LANGUAGE C EXPORT_NAME interpreter)
|
||||||
target_link_libraries(sq squirrel sqstdlib)
|
target_link_libraries(sq squirrel sqstdlib)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS sq EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime)
|
install(TARGETS sq EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime)
|
||||||
@ -16,7 +16,7 @@ endif()
|
|||||||
if(NOT DISABLE_STATIC)
|
if(NOT DISABLE_STATIC)
|
||||||
add_executable(sq_static sq.c)
|
add_executable(sq_static sq.c)
|
||||||
add_executable(squirrel::interpreter_static ALIAS sq)
|
add_executable(squirrel::interpreter_static ALIAS sq)
|
||||||
set_target_properties(sq_static PROPERTIES LINKER_LANGUAGE C)
|
set_target_properties(sq_static PROPERTIES LINKER_LANGUAGE C EXPORT_NAME interpreter_static)
|
||||||
target_link_libraries(sq_static squirrel_static sqstdlib_static)
|
target_link_libraries(sq_static squirrel_static sqstdlib_static)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS sq_static EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime)
|
install(TARGETS sq_static EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime)
|
||||||
|
|||||||
@ -10,6 +10,7 @@ set(SQSTDLIB_SRC sqstdaux.cpp
|
|||||||
if(NOT DISABLE_DYNAMIC)
|
if(NOT DISABLE_DYNAMIC)
|
||||||
add_library(sqstdlib SHARED ${SQSTDLIB_SRC})
|
add_library(sqstdlib SHARED ${SQSTDLIB_SRC})
|
||||||
add_library(squirrel::sqstdlib ALIAS sqstdlib)
|
add_library(squirrel::sqstdlib ALIAS sqstdlib)
|
||||||
|
set_property(TARGET sqstdlib PROPERTY EXPORT_NAME sqstdlib)
|
||||||
target_link_libraries(sqstdlib squirrel)
|
target_link_libraries(sqstdlib squirrel)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS sqstdlib EXPORT squirrel
|
install(TARGETS sqstdlib EXPORT squirrel
|
||||||
@ -30,6 +31,7 @@ endif()
|
|||||||
if(NOT DISABLE_STATIC)
|
if(NOT DISABLE_STATIC)
|
||||||
add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC})
|
add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC})
|
||||||
add_library(squirrel::sqstdlib_static ALIAS sqstdlib_static)
|
add_library(squirrel::sqstdlib_static ALIAS sqstdlib_static)
|
||||||
|
set_property(TARGET sqstdlib_static PROPERTY EXPORT_NAME sqstdlib_static)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS sqstdlib_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development)
|
install(TARGETS sqstdlib_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
4
squirrel-config.cmake.in
Normal file
4
squirrel-config.cmake.in
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/squirrel-config-version.cmake")
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/squirrel-targets.cmake")
|
||||||
@ -14,6 +14,7 @@ set(SQUIRREL_SRC sqapi.cpp
|
|||||||
if(NOT DISABLE_DYNAMIC)
|
if(NOT DISABLE_DYNAMIC)
|
||||||
add_library(squirrel SHARED ${SQUIRREL_SRC})
|
add_library(squirrel SHARED ${SQUIRREL_SRC})
|
||||||
add_library(squirrel::squirrel ALIAS squirrel)
|
add_library(squirrel::squirrel ALIAS squirrel)
|
||||||
|
set_property(TARGET squirrel PROPERTY EXPORT_NAME squirrel)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS squirrel EXPORT squirrel
|
install(TARGETS squirrel EXPORT squirrel
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libraries
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libraries
|
||||||
@ -33,6 +34,7 @@ endif()
|
|||||||
if(NOT DISABLE_STATIC)
|
if(NOT DISABLE_STATIC)
|
||||||
add_library(squirrel_static STATIC ${SQUIRREL_SRC})
|
add_library(squirrel_static STATIC ${SQUIRREL_SRC})
|
||||||
add_library(squirrel::squirrel_static ALIAS squirrel_static)
|
add_library(squirrel::squirrel_static ALIAS squirrel_static)
|
||||||
|
set_property(TARGET squirrel_static PROPERTY EXPORT_NAME squirrel_static)
|
||||||
if(NOT SQ_DISABLE_INSTALLER)
|
if(NOT SQ_DISABLE_INSTALLER)
|
||||||
install(TARGETS squirrel_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development)
|
install(TARGETS squirrel_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Reference in New Issue
Block a user