diff options
-rw-r--r-- | .github/workflows/build.yml | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 63 | ||||
-rw-r--r-- | scripts/wabt-config.cmake.in | 5 |
3 files changed, 69 insertions, 1 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc0ba143..47824eba 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -132,7 +132,7 @@ jobs: - name: Detect minimum CMake version run: > awk 'match($0, /cmake_minimum_required\(VERSION *([0-9]+\.[0-9]+)\)/, a) - { print "WABT_CMAKE_VER=" a[1] }' CMakeLists.txt | tee $GITHUB_ENV + { print "WABT_CMAKE_VER=" a[1]; exit; }' CMakeLists.txt | tee $GITHUB_ENV - name: Install minimum CMake run: | python -m pip install -U setuptools wheel pip diff --git a/CMakeLists.txt b/CMakeLists.txt index 6890d75a..c443fbfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -351,13 +351,41 @@ set(WABT_LIBRARY_SRC ) add_library(wabt STATIC ${WABT_LIBRARY_SRC}) +add_library(wabt::wabt ALIAS wabt) + +target_compile_features(wabt PUBLIC cxx_std_17) + +if (WABT_INSTALL_RULES) + install( + TARGETS wabt EXPORT wabt-targets + COMPONENT wabt-development + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/wabt" + ) + install( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/wabt" + COMPONENT wabt-development + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.def" + ) + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/config.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/wabt/" + COMPONENT wabt-development + ) +endif () IF (NOT WIN32) add_library(wasm-rt-impl STATIC wasm2c/wasm-rt-impl.c wasm2c/wasm-rt-impl.h) + add_library(wabt::wasm-rt-impl ALIAS wasm-rt-impl) + if (WABT_INSTALL_RULES) install( TARGETS wasm-rt-impl + EXPORT wabt-targets COMPONENT wabt-development + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) install( FILES "wasm2c/wasm-rt-impl.h" "wasm2c/wasm-rt.h" @@ -745,3 +773,38 @@ if (EMSCRIPTEN) LINK_DEPENDS "${WABT_POST_JS};${EMSCRIPTEN_EXPORTED_JSON}" ) endif () + +# Create find_package configuration files +if (WABT_INSTALL_RULES) + include(CMakePackageConfigHelpers) + + set(WABT_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/wabt" + CACHE STRING "Path to wabt CMake files") + + install( + EXPORT wabt-targets + DESTINATION "${WABT_INSTALL_CMAKEDIR}" + NAMESPACE wabt:: + FILE wabt-targets.cmake + COMPONENT wabt-development + ) + + configure_package_config_file( + scripts/wabt-config.cmake.in + wabt-config.cmake + INSTALL_DESTINATION "${WABT_INSTALL_CMAKEDIR}" + NO_SET_AND_CHECK_MACRO + ) + + write_basic_package_version_file( + wabt-config-version.cmake COMPATIBILITY ExactVersion + ) + + install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/wabt-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/wabt-config-version.cmake" + DESTINATION "${WABT_INSTALL_CMAKEDIR}" + COMPONENT wabt-development + ) +endif () diff --git a/scripts/wabt-config.cmake.in b/scripts/wabt-config.cmake.in new file mode 100644 index 00000000..56e8bf8e --- /dev/null +++ b/scripts/wabt-config.cmake.in @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.8) +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/wabt-targets.cmake") +check_required_components(wabt) |