diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-09-11 04:48:41 +0800 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-09-10 13:48:41 -0700 |
| commit | 15d747662c1e35e5229b3f444b3ef6a12ada0fd6 (patch) | |
| tree | 11769064280322a8ee13c9cf55c12feb1a8c6a6e | |
| parent | cbf9553c6ee9f220d696433d6c41de6ff6fcbda0 (diff) | |
| download | vcpkg-15d747662c1e35e5229b3f444b3ef6a12ada0fd6.tar.gz vcpkg-15d747662c1e35e5229b3f444b3ef6a12ada0fd6.zip | |
[tbb]Fix static build. (#8018)
| -rw-r--r-- | ports/tbb/CONTROL | 2 | ||||
| -rw-r--r-- | ports/tbb/fix-static-build.patch | 13 | ||||
| -rw-r--r-- | ports/tbb/portfile.cmake | 33 |
3 files changed, 42 insertions, 6 deletions
diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL index c06af492b..da29e4879 100644 --- a/ports/tbb/CONTROL +++ b/ports/tbb/CONTROL @@ -1,4 +1,4 @@ Source: tbb -Version: 2019_U8 +Version: 2019_U8-1 Homepage: https://github.com/01org/tbb Description: Intel's Threading Building Blocks. diff --git a/ports/tbb/fix-static-build.patch b/ports/tbb/fix-static-build.patch new file mode 100644 index 000000000..18f3e2b49 --- /dev/null +++ b/ports/tbb/fix-static-build.patch @@ -0,0 +1,13 @@ +diff --git a/src/tbb/cilk-tbb-interop.h b/src/tbb/cilk-tbb-interop.h +index 295734b..f35531e 100644 +--- a/src/tbb/cilk-tbb-interop.h ++++ b/src/tbb/cilk-tbb-interop.h +@@ -29,6 +29,8 @@ + #else + #ifdef IN_CILK_RUNTIME + #define CILK_EXPORT __declspec(dllexport) ++#elif defined(IN_CILK_STATIC) ++#define CILK_EXPORT /* nothing */ + #else + #define CILK_EXPORT __declspec(dllimport) + #endif // IN_CILK_RUNTIME diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index a0006b1c7..1d543b317 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -1,20 +1,17 @@ include(vcpkg_common_functions) -if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) -endif() - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/tbb REF 4bdba61bafc6ba2d636f31564f1de5702d365cf7 SHA512 0b00c9deefdac5dc1f4fbae314e91eb3513b54b47ff6dec08ed2460486fc7d211ab36d6130e5787bfd50523cb613c65f03f9217d967292ca9056e2d3f5010bf8 HEAD_REF tbb_2019 + PATCHES fix-static-build.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if (NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -33,6 +30,32 @@ else() set(RELEASE_CONFIGURATION Release) set(DEBUG_CONFIGURATION Debug) endif() + + macro(CONFIGURE_PROJ_FILE arg) + set(CONFIGURE_FILE_NAME ${arg}) + set(CONFIGURE_BAK_FILE_NAME ${arg}.bak) + if (NOT EXISTS ${CONFIGURE_BAK_FILE_NAME}) + configure_file(${CONFIGURE_FILE_NAME} ${CONFIGURE_BAK_FILE_NAME} COPYONLY) + endif() + configure_file(${CONFIGURE_BAK_FILE_NAME} ${CONFIGURE_FILE_NAME} COPYONLY) + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(READ ${CONFIGURE_FILE_NAME} SLN_CONFIGURE) + string(REPLACE "<ConfigurationType>DynamicLibrary<\/ConfigurationType>" + "<ConfigurationType>StaticLibrary<\/ConfigurationType>" SLN_CONFIGURE "${SLN_CONFIGURE}") + string(REPLACE "\/D_CRT_SECURE_NO_DEPRECATE" + "\/D_CRT_SECURE_NO_DEPRECATE \/DIN_CILK_STATIC" SLN_CONFIGURE "${SLN_CONFIGURE}") + file(WRITE ${CONFIGURE_FILE_NAME} "${SLN_CONFIGURE}") + else() + file(READ ${CONFIGURE_FILE_NAME} SLN_CONFIGURE) + string(REPLACE "\/D_CRT_SECURE_NO_DEPRECATE" + "\/D_CRT_SECURE_NO_DEPRECATE \/DIN_CILK_RUNTIME" SLN_CONFIGURE "${SLN_CONFIGURE}") + file(WRITE ${CONFIGURE_FILE_NAME} "${SLN_CONFIGURE}") + endif() + endmacro() + + CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbb.vcxproj) + CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbbmalloc.vcxproj) + CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbbmalloc_proxy.vcxproj) vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} |
