aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/duktape
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/duktape')
-rw-r--r--vcpkg/ports/duktape/CMakeLists.txt56
-rw-r--r--vcpkg/ports/duktape/duktapeConfig.cmake32
-rw-r--r--vcpkg/ports/duktape/portfile.cmake37
-rw-r--r--vcpkg/ports/duktape/vcpkg.json18
4 files changed, 143 insertions, 0 deletions
diff --git a/vcpkg/ports/duktape/CMakeLists.txt b/vcpkg/ports/duktape/CMakeLists.txt
new file mode 100644
index 0000000..3b2054c
--- /dev/null
+++ b/vcpkg/ports/duktape/CMakeLists.txt
@@ -0,0 +1,56 @@
+cmake_minimum_required(VERSION 3.13)
+
+option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" OFF)
+option(BUILD_SHARED_LIBS "Create duktape as a shared library" ON)
+
+project(duktape VERSION ${VERSION})
+
+file(GLOB_RECURSE DUKTAPE_SOURCES "${CMAKE_CURRENT_LIST_DIR}/src/*.c")
+file(GLOB_RECURSE DUKTAPE_HEADERS "${CMAKE_CURRENT_LIST_DIR}/src/*.h")
+
+add_library(duktape ${DUKTAPE_SOURCES} ${DUKTAPE_HEADERS})
+target_include_directories(duktape PRIVATE "${CMAKE_CURRENT_LIST_DIR}/src")
+target_include_directories(duktape PUBLIC "$<INSTALL_INTERFACE:include>")
+set_target_properties(duktape PROPERTIES PUBLIC_HEADER "${DUKTAPE_HEADERS}")
+set_target_properties(duktape PROPERTIES VERSION ${duktape_VERSION})
+set_target_properties(duktape PROPERTIES SOVERSION ${duktape_VERSION_MAJOR})
+
+if (BUILD_SHARED_LIBS)
+ target_compile_definitions(duktape PRIVATE -DDUK_F_DLL_BUILD)
+endif ()
+
+install(TARGETS duktape
+ EXPORT duktapeTargets
+ ARCHIVE DESTINATION "lib"
+ LIBRARY DESTINATION "lib"
+ RUNTIME DESTINATION "bin"
+ PUBLIC_HEADER DESTINATION "include"
+ COMPONENT dev
+)
+
+install(EXPORT duktapeTargets
+ FILE unofficial-duktape-config.cmake
+ NAMESPACE unofficial::duktape::
+ DESTINATION "share/unofficial-duktape"
+)
+
+export(PACKAGE duktape)
+
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file("${PROJECT_BINARY_DIR}/unofficial-duktape-config-version.cmake"
+ COMPATIBILITY SameMajorVersion
+)
+
+install(FILES
+ "${PROJECT_BINARY_DIR}/unofficial-duktape-config-version.cmake"
+ DESTINATION "share/unofficial-duktape"
+)
+
+set(prefix "")
+set(LIBDIR "/lib")
+set(VERSION "${duktape_VERSION}")
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/duktape.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/duktape.pc" @ONLY)
+install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/duktape.pc"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
+)
diff --git a/vcpkg/ports/duktape/duktapeConfig.cmake b/vcpkg/ports/duktape/duktapeConfig.cmake
new file mode 100644
index 0000000..94b86d6
--- /dev/null
+++ b/vcpkg/ports/duktape/duktapeConfig.cmake
@@ -0,0 +1,32 @@
+# - Try to find duktape
+# Once done this will define
+#
+# DUKTAPE_FOUND - system has Duktape
+# DUKTAPE_INCLUDE_DIRS - the Duktape include directory
+# DUKTAPE_LIBRARIES - Link these to use DUKTAPE
+# DUKTAPE_DEFINITIONS - Compiler switches required for using Duktape
+#
+
+include(FindPackageHandleStandardArgs)
+include(SelectLibraryConfigurations)
+
+find_path(DUKTAPE_INCLUDE_DIR duktape.h PATHS "${CMAKE_CURRENT_LIST_DIR}/../../include" NO_DEFAULT_PATH REQUIRED)
+
+find_library(DUKTAPE_LIBRARY_RELEASE NAMES duktape PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH REQUIRED)
+find_library(DUKTAPE_LIBRARY_DEBUG NAMES duktape PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH)
+select_library_configurations(DUKTAPE)
+
+find_package_handle_standard_args(duktape
+ REQUIRED_VARS DUKTAPE_LIBRARY DUKTAPE_INCLUDE_DIR)
+
+if(DUKTAPE_FOUND)
+ set(DUKTAPE_INCLUDE_DIRS "${DUKTAPE_INCLUDE_DIR}")
+ set(DUKTAPE_LIBRARIES "${DUKTAPE_LIBRARY}")
+ set(DUKTAPE_DEFINITIONS "")
+endif ()
+
+mark_as_advanced(
+ DUKTAPE_INCLUDE_DIR
+ DUKTAPE_LIBRARY_RELEASE
+ DUKTAPE_LIBRARY_DEBUG
+)
diff --git a/vcpkg/ports/duktape/portfile.cmake b/vcpkg/ports/duktape/portfile.cmake
new file mode 100644
index 0000000..f4e3a9f
--- /dev/null
+++ b/vcpkg/ports/duktape/portfile.cmake
@@ -0,0 +1,37 @@
+vcpkg_download_distfile(
+ ARCHIVE
+ URLS https://github.com/svaarala/duktape/releases/download/v2.7.0/duktape-2.7.0.tar.xz
+ FILENAME duktape-2.7.0.tar.xz
+ SHA512 8ff5465c9c335ea08ebb0d4a06569c991b9dc4661b63e10da6b123b882e7375e82291d6b883c2644902d68071a29ccc880dae8229447cebe710c910b54496c1d
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_replace_string("${SOURCE_PATH}/src/duk_config.h" "#undef DUK_F_DLL_BUILD" "#define DUK_F_DLL_BUILD")
+else()
+ vcpkg_replace_string("${SOURCE_PATH}/src/duk_config.h" "#define DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD" IGNORE_UNCHANGED)
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ "-DVERSION=${VERSION}"
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-duktape)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# Legacy package based on find commands, not on exported config.
+file(COPY "${CURRENT_PORT_DIR}/duktapeConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/duktape/vcpkg.json b/vcpkg/ports/duktape/vcpkg.json
new file mode 100644
index 0000000..73d6258
--- /dev/null
+++ b/vcpkg/ports/duktape/vcpkg.json
@@ -0,0 +1,18 @@
+{
+ "name": "duktape",
+ "version": "2.7.0",
+ "port-version": 2,
+ "description": "Embeddable Javascript engine with a focus on portability and compact footprint.",
+ "homepage": "https://github.com/svaarala/duktape",
+ "license": "MIT",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}