diff options
| author | xoviat <xoviat@users.noreply.github.com> | 2017-11-03 18:54:44 -0500 |
|---|---|---|
| committer | Alexander Karatarakis <alex@karatarakis.com> | 2017-11-03 16:54:44 -0700 |
| commit | 244d6e894f575601835f7b3ae308a648d227188a (patch) | |
| tree | 17f927489f5b398844ab322bc46cad7e5f5c8483 | |
| parent | 79067748292b613b2d3bcabf8d5cdd71a8100cef (diff) | |
| download | vcpkg-244d6e894f575601835f7b3ae308a648d227188a.tar.gz vcpkg-244d6e894f575601835f7b3ae308a648d227188a.zip | |
Add the flint2 library (#1988)
* Add the "flint2" library.
* FIX: update library name
* FIX: only set MSVC version to VC14
* FIX: use static linkage
* DOC: display notification to the user
* [flint/CONTROL] add gettimeofday dependency
* [flint/portfile] move up linkage
* [flint/portfile] attempt to override the CRT linkage
| -rw-r--r-- | ports/flint/CONTROL | 4 | ||||
| -rw-r--r-- | ports/flint/dll_flint.patch | 76 | ||||
| -rw-r--r-- | ports/flint/lib_flint.patch | 40 | ||||
| -rw-r--r-- | ports/flint/portfile.cmake | 117 |
4 files changed, 237 insertions, 0 deletions
diff --git a/ports/flint/CONTROL b/ports/flint/CONTROL new file mode 100644 index 000000000..ee495fc0c --- /dev/null +++ b/ports/flint/CONTROL @@ -0,0 +1,4 @@ +Source: flint +Version: 2.5.2 +Description: Fast Library for Number Theory +Build-Depends: mpir, mpfr, pthreads, gettimeofday diff --git a/ports/flint/dll_flint.patch b/ports/flint/dll_flint.patch new file mode 100644 index 000000000..29e1fa77a --- /dev/null +++ b/ports/flint/dll_flint.patch @@ -0,0 +1,76 @@ +diff --git a/build.vc14/dll_flint/dll_flint.vcxproj b/build.vc14/dll_flint/dll_flint.vcxproj +index 3c8edd3c..947b4e38 100644 +--- a/build.vc14/dll_flint/dll_flint.vcxproj ++++ b/build.vc14/dll_flint/dll_flint.vcxproj +@@ -81,7 +81,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -90,7 +90,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -105,7 +105,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -114,7 +114,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -129,7 +129,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -138,7 +138,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL +@@ -153,7 +153,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -162,7 +162,7 @@ + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>postbuild $(IntDir) DLL diff --git a/ports/flint/lib_flint.patch b/ports/flint/lib_flint.patch new file mode 100644 index 000000000..3d0a4caea --- /dev/null +++ b/ports/flint/lib_flint.patch @@ -0,0 +1,40 @@ +diff --git a/build.vc14/lib_flint/lib_flint.vcxproj b/build.vc14/lib_flint/lib_flint.vcxproj +index c6bd44c0..197d7723 100644 +--- a/build.vc14/lib_flint/lib_flint.vcxproj ++++ b/build.vc14/lib_flint/lib_flint.vcxproj +@@ -81,7 +81,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -100,7 +100,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -119,7 +119,7 @@ + <ClCompile> + <Optimization>Full</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -138,7 +138,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> diff --git a/ports/flint/portfile.cmake b/ports/flint/portfile.cmake new file mode 100644 index 000000000..e20ef9731 --- /dev/null +++ b/ports/flint/portfile.cmake @@ -0,0 +1,117 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_CRT_LINKAGE static) + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +include(vcpkg_common_functions) + +set(FLINT_VERSION 2.5.2) +set(FLINT_HASH "8606b369af505d5fcedd05d95fcd04afac2a916fc5291501c56785891cfdb2f9bc98700b2d05afd1d9482fb96df2a8c8bf1cd0e5696df46775df9fa743eb900b") +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flint-${FLINT_VERSION}) + +vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://www.flintlib.org/flint-${FLINT_VERSION}.zip" + FILENAME "flint-${FLINT_VERSION}.zip" + SHA512 ${FLINT_HASH} +) +vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/lib_flint.patch" + "${CMAKE_CURRENT_LIST_DIR}/dll_flint.patch" +) + +set(MSVC_VERSION 14) + +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +file(COPY ${SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME) + +# Use fresh copy of sources for building and modification +set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${SOURCE_DIR_NAME}") + +file(TO_NATIVE_PATH ${CURRENT_INSTALLED_DIR} NATIVE_INSTALLED_DIR) +configure_file( + "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" @ONLY +) +configure_file( + "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" @ONLY +) + +file(RENAME "${SOURCE_PATH}/fmpz-conversions-gc.in" "${SOURCE_PATH}/fmpz-conversions.h") + +IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + file(RENAME "${SOURCE_PATH}/fft_tuning32.in" "${SOURCE_PATH}/fft_tuning.h") +ELSE() + file(RENAME "${SOURCE_PATH}/fft_tuning64.in" "${SOURCE_PATH}/fft_tuning.h") +ENDIF() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj + ) +else() + vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj + ) +endif() + +IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + SET(BUILD_ARCH "Win32") +ELSE() + SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE}) +ENDIF() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(GLOB FLINT_HEADERS "${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/*.h") + file(INSTALL + ${FLINT_HEADERS} + DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + RENAME flint.lib + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + RENAME flint.lib + ) + vcpkg_copy_pdbs() +else() + file(GLOB FLINT_HEADERS "${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/*.h") + file(INSTALL + ${FLINT_HEADERS} + DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Release/lib_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + RENAME flint.lib + ) + file(INSTALL + ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Debug/lib_flint.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + RENAME flint.lib + ) +endif() + +file(INSTALL + ${SOURCE_PATH}/gpl-2.0.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/flint + RENAME copyright +) + +message(STATUS "Installing done") |
