]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/pbc/portfile.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / pbc / portfile.cmake
CommitLineData
1e59de90
TL
1vcpkg_fail_port_install(ON_ARCH "arm" "arm64" ON_TARGET "UWP")
2
3set(PBC_VERSION 0.5.14)
4
5if(NOT VCPKG_TARGET_IS_WINDOWS)
6 vcpkg_download_distfile(
7 ARCHIVE
8 URLS "https://crypto.stanford.edu/pbc/files/pbc-${PBC_VERSION}.tar.gz"
9 FILENAME pbc-${PBC_VERSION}.tar.gz
10 SHA512 d75d4ceb3f67ee62c7ca41e2a91ee914fbffaeb70256675aed6734d586950ea8e64e2f16dc069d71481eddb703624df8d46497005fb58e75cf098dd7e7961333
11 )
12
13 vcpkg_extract_source_archive_ex(
14 OUT_SOURCE_PATH SOURCE_PATH
15 ARCHIVE ${ARCHIVE}
16 REF ${PBC_VERSION}
17 PATCHES linux.patch
18 )
19
20 vcpkg_find_acquire_program(BISON)
21 vcpkg_find_acquire_program(FLEX)
22
23 if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
24 set(SHARED_STATIC --enable-static --disable-shared)
25 else()
26 set(SHARED_STATIC --disable-static --enable-shared)
27 endif()
28
29 set(OPTIONS ${SHARED_STATIC} LEX=${FLEX} YACC=${BISON}\ -y)
30
31 vcpkg_configure_make(
32 SOURCE_PATH ${SOURCE_PATH}
33 AUTOCONFIG
34 COPY_SOURCE
35 OPTIONS
36 ${OPTIONS}
37 )
38
39 vcpkg_install_make()
40
41 file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/share/info)
42 file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
43else()
44 vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
45 vcpkg_from_github(
46 OUT_SOURCE_PATH SOURCE_PATH
47 REPO blynn/pbc
48 REF fbf4589036ce4f662e2d06905862c9e816cf9d08
49 SHA512 9348afd3866090b9fca189ae3a6bbb86c842b5f6ee7e1972f1a579993e589952c5926cb0795d4db1e647e3af263827e22c7602314c39bd97e03ffe9ad0fb48ab
50 HEAD_REF master
51 PATCHES windows.patch
52 )
53
54 set(CMAKE_FIND_LIBRARY_PREFIXES "")
55 set(CMAKE_FIND_LIBRARY_SUFFIXES "")
56
57 find_path(MPIR_INCLUDE_DIR "gmp.h" HINTS ${CURRENT_INSTALLED_DIR} PATH_SUFFIXES include)
58 if(NOT MPIR_INCLUDE_DIR)
59 message(FATAL_ERROR "GMP includes not found")
60 endif()
61
62 find_library(MPIR_LIBRARIES_REL NAMES "mpir.lib" HINTS ${CURRENT_INSTALLED_DIR} PATH_SUFFIXES lib)
63 if(NOT MPIR_LIBRARIES_REL)
64 message(FATAL_ERROR "mpir library not found")
65 endif()
66
67 find_library(MPIR_LIBRARIES_DBG NAMES "mpir.lib" HINTS ${CURRENT_INSTALLED_DIR} PATH_SUFFIXES debug/lib)
68 if(NOT MPIR_LIBRARIES_DBG)
69 message(FATAL_ERROR "mpir debug library not found")
70 endif()
71
72 if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
73 set(LibrarySuffix "lib")
74 set(ConfigurationSuffix "")
75 else()
76 set(LibrarySuffix "dll")
77 set(ConfigurationSuffix " DLL")
78 endif()
79
80 if(VCPKG_CRT_LINKAGE STREQUAL "static")
81 set(RuntimeLibraryExt "")
82 else()
83 set(RuntimeLibraryExt "DLL")
84 endif()
85
86 if(TRIPLET_SYSTEM_ARCH STREQUAL "x86")
87 set(Platform "Win32")
88 else()
89 set(Platform ${TRIPLET_SYSTEM_ARCH})
90 endif()
91
92 # PBC expects mpir directory in build root
93 get_filename_component(SOURCE_PATH_PARENT ${SOURCE_PATH} DIRECTORY)
94 file(REMOVE_RECURSE ${SOURCE_PATH_PARENT}/mpir)
95 file(MAKE_DIRECTORY ${SOURCE_PATH_PARENT}/mpir)
96 file(GLOB FILES ${MPIR_INCLUDE_DIR}/gmp*.h)
97 file(COPY ${FILES} ${MPIR_LIBRARIES_REL} DESTINATION "${SOURCE_PATH_PARENT}/mpir/${LibrarySuffix}/${Platform}/Release")
98 file(COPY ${FILES} ${MPIR_LIBRARIES_DBG} DESTINATION "${SOURCE_PATH_PARENT}/mpir/${LibrarySuffix}/${Platform}/Debug")
99
100 get_filename_component(SOURCE_PATH_SUFFIX ${SOURCE_PATH} NAME)
101 vcpkg_install_msbuild(SOURCE_PATH ${SOURCE_PATH_PARENT}
102 PROJECT_SUBPATH ${SOURCE_PATH_SUFFIX}/pbcwin/projects/pbclib.vcxproj
103 INCLUDES_SUBPATH ${SOURCE_PATH_SUFFIX}/include
104 LICENSE_SUBPATH ${SOURCE_PATH_SUFFIX}/COPYING
105 RELEASE_CONFIGURATION "Release${ConfigurationSuffix}"
106 DEBUG_CONFIGURATION "Debug${ConfigurationSuffix}"
107 OPTIONS_DEBUG "/p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt}"
108 OPTIONS_RELEASE "/p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt}"
109 OPTIONS /p:SolutionDir=../
110 ALLOW_ROOT_INCLUDES ON
111 )
112
113 # clean up mpir stuff
114 file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/mpir.lib ${CURRENT_PACKAGES_DIR}/debug/lib/mpir.lib)
115endif()