From 1e7303d4c52468fbb24a0d3418ff033d2585d18d Mon Sep 17 00:00:00 2001 From: Richy HBM Date: Wed, 11 Sep 2019 22:52:07 +0100 Subject: [PATCH] Adding WREN to vcpkg (#7242) * First pass wren port * Add warnings defs, dont specifically use static * Revert warnings * See if bringing back new lines fixes windows build issues * Try force static * Remove STATIC * Force static --- ports/wren/CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++ ports/wren/CONTROL | 4 ++++ ports/wren/portfile.cmake | 27 +++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 ports/wren/CMakeLists.txt create mode 100644 ports/wren/CONTROL create mode 100644 ports/wren/portfile.cmake diff --git a/ports/wren/CMakeLists.txt b/ports/wren/CMakeLists.txt new file mode 100644 index 000000000..b57a6a907 --- /dev/null +++ b/ports/wren/CMakeLists.txt @@ -0,0 +1,50 @@ +# CMake taken from https://github.com/walterschell/wren/blob/cmake/CMakeLists.txt + +# Need transitive dependencies introduced in 2.8.12 +cmake_minimum_required(VERSION 2.8.12) + +project(Wren LANGUAGES "C") + +set(wren_warning_flags "-Wall" "-Wextra" "-Werror" "-Wno-unused-parameter") + +IF (WIN32) + ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS ) +ENDIF () + +set(opt_DIR "src/optional") +set(vm_DIR "src/vm") + +# TODO: Don't glob +file(GLOB opt_SRCS ${opt_DIR}/*.c) +file(GLOB vm_SRCS ${vm_DIR}/*.c) + +set(wren_SRCS ${vm_SRCS} ${opt_SRCS}) + +add_library(wren ${wren_SRCS}) + +target_include_directories(wren PUBLIC src/include PRIVATE src/vm src/optional) + +target_link_libraries(wren INTERFACE m) + +target_compile_options(wren PRIVATE "-Wall") + +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + target_compile_options(wren PUBLIC -DDEBUG) +endif() + + +INSTALL (TARGETS wren + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +) + + +IF (NOT DEFINED SKIP_INSTALL_HEADERS) + INSTALL( + FILES + src/include/wren.h + src/include/wren.hpp + DESTINATION include + ) +ENDIF () diff --git a/ports/wren/CONTROL b/ports/wren/CONTROL new file mode 100644 index 000000000..7ea85e165 --- /dev/null +++ b/ports/wren/CONTROL @@ -0,0 +1,4 @@ +Source: wren +Version: 2019-07-01 +Homepage: https://github.com/wren-lang/wren +Description: Wren is a small, fast, class-based concurrent scripting language. diff --git a/ports/wren/portfile.cmake b/ports/wren/portfile.cmake new file mode 100644 index 000000000..dbd71b8df --- /dev/null +++ b/ports/wren/portfile.cmake @@ -0,0 +1,27 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO wren-lang/wren + REF d1a0d0682ac072fa20f2dcca356dac06565e93a1 + SHA512 d6b7555da10ea209d04308467563ec401f699a22ca8524e4ae65fd050b0403c5e70430047dbb6a883b8021ab50525c17bb63d76543e7c59dfe4b521cfde6c413 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCOMPILE_AS_CPP=OFF +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +vcpkg_copy_pdbs()