diff options
| author | Alexander Saprykin <xelfium@gmail.com> | 2018-05-26 13:27:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-26 13:27:14 +0200 |
| commit | 4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5 (patch) | |
| tree | d95c9490352eb73f078d34a33bc4bb44ac9fa48b /ports/libgo | |
| parent | fb689bd13dd6ba563a885d71fff1dd2b32a615db (diff) | |
| parent | 2ac7527b40b1dbeb7856b9f763362c1e139e2ca9 (diff) | |
| download | vcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.tar.gz vcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.zip | |
Merge pull request #1 from Microsoft/master
Update vcpkg from upstream
Diffstat (limited to 'ports/libgo')
| -rw-r--r-- | ports/libgo/CONTROL | 4 | ||||
| -rw-r--r-- | ports/libgo/cmake.patch | 34 | ||||
| -rw-r--r-- | ports/libgo/libgo-config.cmake | 25 | ||||
| -rw-r--r-- | ports/libgo/portfile.cmake | 63 | ||||
| -rw-r--r-- | ports/libgo/usage | 5 |
5 files changed, 131 insertions, 0 deletions
diff --git a/ports/libgo/CONTROL b/ports/libgo/CONTROL new file mode 100644 index 000000000..c5c06fd8b --- /dev/null +++ b/ports/libgo/CONTROL @@ -0,0 +1,4 @@ +Source: libgo +Version: 2.8-1 +Build-Depends: boost-context +Description: The best stackful coroutine by c++11. diff --git a/ports/libgo/cmake.patch b/ports/libgo/cmake.patch new file mode 100644 index 000000000..bed9cddaa --- /dev/null +++ b/ports/libgo/cmake.patch @@ -0,0 +1,34 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dbbdd7d..29396a5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -137,7 +137,7 @@ if (UNIX)
+ set(CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall -pthread ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -pg ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 ${CMAKE_CXX_FLAGS}")
+-else ()
++elseif (NOT DISABLE_ADJUST_COMMAND_LINE_FLAGS)
+ if (NOT DISABLE_DYNAMIC_LIB)
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
+@@ -159,7 +159,7 @@ set(STATIC_T "libgo_static")
+ add_library("${STATIC_T}" STATIC ${CO_SRC_LIST})
+ set_target_properties("${STATIC_T}" PROPERTIES OUTPUT_NAME "${TARGET}")
+
+-if (UNIX)
++if (UNIX OR FORCE_UNIX_TARGETS)
+ add_subdirectory(${PROJECT_SOURCE_DIR}/libgo/main)
+
+ if (NOT DISABLE_DYNAMIC_LIB)
+@@ -180,7 +180,11 @@ if (UNIX)
+ PATTERN "ctx_boost_coroutine" EXCLUDE
+ PATTERN "ctx_ucontext" EXCLUDE
+ PATTERN "*.h")
++ if(UNIX)
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/linux/ DESTINATION "include/libgo" FILES_MATCHING PATTERN "*.h")
++ else()
++ install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/windows/ DESTINATION "include/libgo" FILES_MATCHING PATTERN "*.h")
++ endif()
+ #file(WRITE ${PROJECT_SOURCE_DIR}/tools/libgo.conf "${CMAKE_INSTALL_PREFIX}/lib")
+ #install(FILES ${PROJECT_SOURCE_DIR}/tools/libgo.conf DESTINATION "/etc/ld.so.conf.d")
+ if (DEPEND_BOOST)
diff --git a/ports/libgo/libgo-config.cmake b/ports/libgo/libgo-config.cmake new file mode 100644 index 000000000..fd52f8dd3 --- /dev/null +++ b/ports/libgo/libgo-config.cmake @@ -0,0 +1,25 @@ +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +if(NOT LIBGO_FIND_COMPONENTS) + set(LIBGO_FIND_COMPONENTS libgo libgo) + if(LIBGO_FIND_REQUIRED) + set(LIBGO_FIND_REQUIRED_libgo TRUE) + endif() + + set(LIBGO_FOUND TRUE) +endif() + +set(LIBGO_INCLUDE_DIRS ${_DIR}/../../include) +set(LIBGO_LIBRARIES) +if (EXISTS ${_DIR}/../../lib/liblibgo.a) + list(APPEND LIBGO_LIBRARIES optimized ${_DIR}/../../lib/liblibgo.a) +endif() +if (EXISTS ${_DIR}/../../debug/lib/liblibgo.a) + list(APPEND LIBGO_LIBRARIES debug ${_DIR}/../../debug/lib/liblibgo.a) +endif() +if (EXISTS ${_DIR}/../../lib/libgo.lib) + list(APPEND LIBGO_LIBRARIES optimized ${_DIR}/../../lib/libgo.lib) +endif() +if (EXISTS ${_DIR}/../../debug/lib/libgo.lib) + list(APPEND LIBGO_LIBRARIES debug ${_DIR}/../../debug/lib/libgo.lib) +endif() diff --git a/ports/libgo/portfile.cmake b/ports/libgo/portfile.cmake new file mode 100644 index 000000000..01dabcb81 --- /dev/null +++ b/ports/libgo/portfile.cmake @@ -0,0 +1,63 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("libgo currently only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yyzybb537/libgo + REF v2.8 + SHA512 44784de4aec36ea321195c11c99a73de4f6f51285febdf6980e8aaced1fdfc0a34c6b1a8acc8c6b424e747310a1d7fb1604f722084c28ab91f8ebee15667d59b + HEAD_REF master + PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch +) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/XBased/xhook/archive/e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz" + FILENAME "xhook-e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz" + SHA512 1bcf320f50cff13d92013a9f0ab5c818c2b6b63e9c1ac18c5dd69189e448d7a848f1678389d8b2c08c65f907afb3909e743f6c593d9cfb21e2bb67d5c294a166 +) + +file(REMOVE_RECURSE ${SOURCE_PATH}/third_party) + +vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}/third_party) +file(RENAME ${SOURCE_PATH}/third_party/xhook-e18c450541892212ca4f11dc91fa269fabf9646f ${SOURCE_PATH}/third_party/xhook) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DDISABLE_ADJUST_COMMAND_LINE_FLAGS=ON + -DDISABLE_DYNAMIC_LIB=ON + -DENABLE_BOOST_CONTEXT=ON + -DFORCE_UNIX_TARGETS=ON + -DDISABLE_SYSTEMWIDE=ON +) + +vcpkg_install_cmake() + +# remove duplicated include files +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/libgo/disable_hook) + +file(GLOB REL_MAIN ${CURRENT_PACKAGES_DIR}/lib/libgo_main.lib ${CURRENT_PACKAGES_DIR}/lib/liblibgo_main.a) +if(REL_MAIN) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(COPY ${REL_MAIN} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(REMOVE ${REL_MAIN}) +endif() + +file(GLOB DBG_MAIN ${CURRENT_PACKAGES_DIR}/debug/lib/libgo_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/liblibgo_main.a) +if(DBG_MAIN) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(COPY ${DBG_MAIN} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(REMOVE ${DBG_MAIN}) +endif() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgo RENAME copyright) +file(INSTALL ${CURRENT_PORT_DIR}/libgo-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgo) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/libgo/usage b/ports/libgo/usage new file mode 100644 index 000000000..a8f072947 --- /dev/null +++ b/ports/libgo/usage @@ -0,0 +1,5 @@ +The package libgo provides CMake integration:
+
+ find_package(libgo REQUIRED)
+ target_include_directories(main PRIVATE ${LIBGO_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${LIBGO_LIBRARIES})
|
