mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-06-07 12:26:08 +08:00
[xeus] Add new port (#5351)
* [xeus] Add new port * [xeus] Update to 2019-02-04 * [xeus] Update cryptopp dependency * [xeus] Update to 2019-02-13 * [xeus] Static building support
This commit is contained in:
parent
969299ddbf
commit
9aad2e8f33
4
ports/xeus/CONTROL
Normal file
4
ports/xeus/CONTROL
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Source: xeus
|
||||||
|
Version: 2019-02-13-1
|
||||||
|
Description: C++ implementation of the Jupyter kernel protocol
|
||||||
|
Build-Depends: cppzmq, cryptopp, libuuid (linux), nlohmann-json, xtl, zeromq
|
47
ports/xeus/portfile.cmake
Normal file
47
ports/xeus/portfile.cmake
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO QuantStack/xeus
|
||||||
|
REF f78c60c7ce28baecb2479f2b82e4e8d1a6c35188
|
||||||
|
SHA512 9d83f32f641bcad4ac96e263c465d46bdfa7d18d41f1e201309244c95587ce08ff2426f7cdd3a4399563d46064ed9bedd4d0babf4840f65e95c6a2c6f23ac9bb
|
||||||
|
HEAD_REF master
|
||||||
|
PATCHES
|
||||||
|
static-lib.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_configure_cmake(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
PREFER_NINJA
|
||||||
|
OPTIONS
|
||||||
|
-DBUILD_EXAMPLES=OFF
|
||||||
|
-DBUILD_TESTS=OFF
|
||||||
|
-DDOWNLOAD_GTEST=OFF
|
||||||
|
-DXEUS_USE_SHARED_CRYPTOPP=OFF # `cryptopp` port currently only supports static linkage.
|
||||||
|
-DDISABLE_ARCH_NATIVE=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_install_cmake()
|
||||||
|
|
||||||
|
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE
|
||||||
|
${CURRENT_PACKAGES_DIR}/debug/include
|
||||||
|
${CURRENT_PACKAGES_DIR}/debug/share
|
||||||
|
)
|
||||||
|
|
||||||
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||||
|
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/xeus/xeus.hpp
|
||||||
|
"#ifdef XEUS_STATIC_LIB"
|
||||||
|
"#if 1 // #ifdef XEUS_STATIC_LIB"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Handle copyright
|
||||||
|
configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
|
||||||
|
|
||||||
|
# Install usage
|
||||||
|
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
||||||
|
|
||||||
|
# CMake integration test
|
||||||
|
#vcpkg_test_cmake(PACKAGE_NAME ${PORT})
|
63
ports/xeus/static-lib.patch
Normal file
63
ports/xeus/static-lib.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 26118eb..ccda00b 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -141,7 +141,12 @@ set(XEUS_SOURCES
|
||||||
|
# Output
|
||||||
|
# ======
|
||||||
|
|
||||||
|
-add_library(xeus SHARED ${XEUS_SOURCES} ${XEUS_HEADERS})
|
||||||
|
+option(BUILD_SHARED_LIBS "Build shared instead of static libraries." ON)
|
||||||
|
+if (BUILD_SHARED_LIBS)
|
||||||
|
+ add_library(xeus SHARED ${XEUS_SOURCES} ${XEUS_HEADERS})
|
||||||
|
+else ()
|
||||||
|
+ add_library(xeus STATIC ${XEUS_SOURCES} ${XEUS_HEADERS})
|
||||||
|
+endif ()
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
set_target_properties(xeus PROPERTIES
|
||||||
|
@@ -166,9 +171,9 @@ target_link_libraries(xeus
|
||||||
|
|
||||||
|
OPTION(XEUS_USE_SHARED_CRYPTOPP "Used shared library for cryptopp" OFF)
|
||||||
|
if (XEUS_USE_SHARED_CRYPTOPP)
|
||||||
|
- target_link_libraries(xeus PRIVATE cryptopp-shared)
|
||||||
|
+ target_link_libraries(xeus PUBLIC cryptopp-shared)
|
||||||
|
else ()
|
||||||
|
- target_link_libraries(xeus PRIVATE cryptopp-static)
|
||||||
|
+ target_link_libraries(xeus PUBLIC cryptopp-static)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
@@ -226,6 +231,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU"
|
||||||
|
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+if (NOT BUILD_SHARED_LIBS)
|
||||||
|
+ target_compile_definitions(xeus PUBLIC XEUS_STATIC_LIB)
|
||||||
|
+endif ()
|
||||||
|
+
|
||||||
|
if(MSVC)
|
||||||
|
target_compile_definitions(xeus PUBLIC -DNOMINMAX)
|
||||||
|
target_compile_options(xeus PUBLIC /DGUID_WINDOWS /MP /bigobj)
|
||||||
|
diff --git a/include/xeus/xeus.hpp b/include/xeus/xeus.hpp
|
||||||
|
index 99e1d79..522bb78 100644
|
||||||
|
--- a/include/xeus/xeus.hpp
|
||||||
|
+++ b/include/xeus/xeus.hpp
|
||||||
|
@@ -10,10 +10,14 @@
|
||||||
|
#define XEUS_EXPORT_HPP
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
- #ifdef XEUS_EXPORTS
|
||||||
|
- #define XEUS_API __declspec(dllexport)
|
||||||
|
+ #ifdef XEUS_STATIC_LIB
|
||||||
|
+ #define XEUS_API
|
||||||
|
#else
|
||||||
|
- #define XEUS_API __declspec(dllimport)
|
||||||
|
+ #ifdef XEUS_EXPORTS
|
||||||
|
+ #define XEUS_API __declspec(dllexport)
|
||||||
|
+ #else
|
||||||
|
+ #define XEUS_API __declspec(dllimport)
|
||||||
|
+ #endif
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define XEUS_API
|
4
ports/xeus/usage
Normal file
4
ports/xeus/usage
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
The package xeus provides CMake targets:
|
||||||
|
|
||||||
|
find_package(xeus CONFIG REQUIRED)
|
||||||
|
target_link_libraries(main PRIVATE xeus)
|
Loading…
Reference in New Issue
Block a user