diff options
Diffstat (limited to 'vcpkg/ports/libgo')
| -rw-r--r-- | vcpkg/ports/libgo/Add-target-include-directory.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/libgo/add-stdexcept.diff | 24 | ||||
| -rw-r--r-- | vcpkg/ports/libgo/cmake.patch | 114 | ||||
| -rw-r--r-- | vcpkg/ports/libgo/portfile.cmake | 45 | ||||
| -rw-r--r-- | vcpkg/ports/libgo/vcpkg.json | 19 |
5 files changed, 215 insertions, 0 deletions
diff --git a/vcpkg/ports/libgo/Add-target-include-directory.patch b/vcpkg/ports/libgo/Add-target-include-directory.patch new file mode 100644 index 0000000..fe4dffe --- /dev/null +++ b/vcpkg/ports/libgo/Add-target-include-directory.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e21eee0..017cc7a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -176,6 +176,8 @@ if (WIN32) + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4819 /wd4267") + endif() + ++TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:include>) ++ + install(TARGETS ${PROJECT_NAME} + EXPORT "${PROJECT_NAME}Config" + LIBRARY DESTINATION lib diff --git a/vcpkg/ports/libgo/add-stdexcept.diff b/vcpkg/ports/libgo/add-stdexcept.diff new file mode 100644 index 0000000..1acd049 --- /dev/null +++ b/vcpkg/ports/libgo/add-stdexcept.diff @@ -0,0 +1,24 @@ +diff --git a/libgo/common/anys.h b/libgo/common/anys.h +index e5b2219..80c22e3 100644 +--- a/libgo/common/anys.h ++++ b/libgo/common/anys.h +@@ -7,6 +7,7 @@ + #include <mutex> + #include <assert.h> + #include <memory> ++#include <stdexcept> + + namespace co + { +diff --git a/libgo/common/spinlock.h b/libgo/common/spinlock.h +index b0adeb8..30789ad 100644 +--- a/libgo/common/spinlock.h ++++ b/libgo/common/spinlock.h +@@ -1,6 +1,7 @@ + #pragma once + #include "config.h" + #include <exception> ++#include <stdexcept> + + namespace co + { diff --git a/vcpkg/ports/libgo/cmake.patch b/vcpkg/ports/libgo/cmake.patch new file mode 100644 index 0000000..4f1a018 --- /dev/null +++ b/vcpkg/ports/libgo/cmake.patch @@ -0,0 +1,114 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dfa9b72..e21eee0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,8 +1,9 @@ +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.0) + + ################################################################################### + project(libgo) + ++if(0) + enable_language(C ASM) + + if (CMAKE_BUILD_TYPE) +@@ -43,34 +44,38 @@ message("-------------- Env ---------------") + message(" CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}") + message(" CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") + message("----------------------------------") ++endif() ++ ++enable_language(C CXX ASM) ++set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) ++ ++set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed") ++set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") ++set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Path where headers will be installed") ++set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" CACHE PATH "Path where cmake configs will be installed") ++set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) ++foreach(p LIB BIN INCLUDE CMAKE) ++ set(var INSTALL_${p}_DIR) ++ if(NOT IS_ABSOLUTE "${${var}}") ++ set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") ++ endif() ++endforeach() ++ ++set(ENABLE_DEBUGGER 0) ++set(ENABLE_HOOK 0) + + configure_file(${PROJECT_SOURCE_DIR}/libgo/common/cmake_config.h.in ${PROJECT_SOURCE_DIR}/libgo/common/cmake_config.h) + message("----------------------------------") + + if (UNIX) +- set(CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall ${CMAKE_CXX_FLAGS}") +- set(CMAKE_CXX_FLAGS_DEBUG "-g") +- set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -DNDEBUG") +- + set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS S) +- message("--> select asm source file, please wait about 5 seconds ...") + execute_process(COMMAND "${PROJECT_SOURCE_DIR}/third_party/select_asm.sh" "${PROJECT_SOURCE_DIR}" "jump" OUTPUT_VARIABLE jump_asm_file) + execute_process(COMMAND "${PROJECT_SOURCE_DIR}/third_party/select_asm.sh" "${PROJECT_SOURCE_DIR}" "make" OUTPUT_VARIABLE make_asm_file) + elseif (WIN32) +- # windows platform + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /EHsc") +- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /EHsc") +- +- #set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) +- #file(COPY ${PROJECT_SOURCE_DIR}/third_party/boost.context/libs/context/src/asm/make_x86_64_ms_pe_masm.asm DESTINATION ${PROJECT_SOURCE_DIR}/libgo/context) +- #file(COPY ${PROJECT_SOURCE_DIR}/third_party/boost.context/libs/context/src/asm/jump_x86_64_ms_pe_masm.asm DESTINATION ${PROJECT_SOURCE_DIR}/libgo/context) + endif() + +-message("------------ Cxx flags -------------") +-message(" CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") +-message("------------------------------------") +- + include_directories(${PROJECT_SOURCE_DIR}) + aux_source_directory(${PROJECT_SOURCE_DIR}/libgo CO_SRC_LIST) + aux_source_directory(${PROJECT_SOURCE_DIR}/libgo/common CO_SRC_LIST) +@@ -97,6 +102,7 @@ else() + aux_source_directory(${PROJECT_SOURCE_DIR}/libgo/netio/disable_hook CO_SRC_LIST) + endif() + ++if(0) + set(TARGET "libgo") + set(STATIC_T "libgo_static") + set(STATIC_HOOK "static_hook") +@@ -136,7 +142,6 @@ if (UNIX) + ) + + set(PROFILE_FLAGS "-pg ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") +- + #message("PROFILE_FLAGS: ${PROFILE_FLAGS}") + add_custom_target(profile + COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=PROFILE -DCMAKE_CXX_FLAGS_PROFILE=\\'${PROFILE_FLAGS}\\' ${CMAKE_SOURCE_DIR} +@@ -160,3 +165,27 @@ if (WIN32) + add_subdirectory(${PROJECT_SOURCE_DIR}/tutorial) + endif() + endif() ++endif() ++ ++list(APPEND CO_SRC_LIST ${jump_asm_file}) ++list(APPEND CO_SRC_LIST ${make_asm_file}) ++add_library(${PROJECT_NAME} ${CO_SRC_LIST}) ++target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS}) ++if (WIN32) ++ target_link_libraries(${PROJECT_NAME} ws2_32) ++ set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4819 /wd4267") ++endif() ++ ++install(TARGETS ${PROJECT_NAME} ++ EXPORT "${PROJECT_NAME}Config" ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin) ++ ++install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/ ++ DESTINATION ${INSTALL_INCLUDE_DIR} ++ FILES_MATCHING PATTERN "*.h") ++ ++install(EXPORT "${PROJECT_NAME}Config" ++ NAMESPACE libgo:: ++ DESTINATION "${INSTALL_CMAKE_DIR}") diff --git a/vcpkg/ports/libgo/portfile.cmake b/vcpkg/ports/libgo/portfile.cmake new file mode 100644 index 0000000..9352688 --- /dev/null +++ b/vcpkg/ports/libgo/portfile.cmake @@ -0,0 +1,45 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yyzybb537/libgo + REF 5d4f36508e8eb2d5aa17cf37cd951dc91da23096 #v3.1 + SHA512 0f281f58116148ba1dd3904febbc391d47190f8e148b70bed7c4b7e6cb3efa5e41e2b7be4832ceeb805996e085f4c2d89fd0cf3b0651e037b32758d6a441411b + HEAD_REF master + PATCHES + cmake.patch + Add-target-include-directory.patch + add-stdexcept.diff +) + +vcpkg_from_github( + OUT_SOURCE_PATH XHOOK_SOURCE_PATH + REPO XBased/xhook + REF e18c450541892212ca4f11dc91fa269fabf9646f + SHA512 1bcf320f50cff13d92013a9f0ab5c818c2b6b63e9c1ac18c5dd69189e448d7a848f1678389d8b2c08c65f907afb3909e743f6c593d9cfb21e2bb67d5c294a166 + HEAD_REF master +) + +file(REMOVE_RECURSE "${SOURCE_PATH}/third_party") +file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party") +file(RENAME "${XHOOK_SOURCE_PATH}" "${SOURCE_PATH}/third_party/xhook") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + DISABLE_PARALLEL_CONFIGURE +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/disable_hook") + +if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/unix/static_hook") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/windows") +else() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/unix") +endif() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libgo/vcpkg.json b/vcpkg/ports/libgo/vcpkg.json new file mode 100644 index 0000000..5651873 --- /dev/null +++ b/vcpkg/ports/libgo/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "libgo", + "version": "3.1", + "port-version": 6, + "description": "The best stackful coroutine by c++11.", + "homepage": "https://github.com/yyzybb537/libgo", + "license": "MIT", + "supports": "!(arm | uwp)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |