aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libgo
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libgo')
-rw-r--r--vcpkg/ports/libgo/Add-target-include-directory.patch13
-rw-r--r--vcpkg/ports/libgo/add-stdexcept.diff24
-rw-r--r--vcpkg/ports/libgo/cmake.patch114
-rw-r--r--vcpkg/ports/libgo/portfile.cmake45
-rw-r--r--vcpkg/ports/libgo/vcpkg.json19
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
+ }
+ ]
+}