]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | set(MPG123_VERSION 1.26.5) |
2 | set(MPG123_HASH 0c2b3174c834e4bd459a3324b825d9bf9341a3486c0af815773b00cb007578cb718522ac4e983c7ad7e3bb5df9fdd342a03cb51345c41f68971145196ac04b7a) | |
3 | ||
4 | #architecture detection | |
5 | if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") | |
6 | set(MPG123_ARCH Win32) | |
7 | set(MPG123_CONFIGURATION _x86) | |
8 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | |
9 | set(MPG123_ARCH x64) | |
10 | set(MPG123_CONFIGURATION _x86) | |
11 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") | |
12 | set(MPG123_ARCH ARM) | |
13 | set(MPG123_CONFIGURATION _Generic) | |
14 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") | |
15 | set(MPG123_ARCH ARM64) | |
16 | set(MPG123_CONFIGURATION _Generic) | |
17 | else() | |
18 | message(FATAL_ERROR "unsupported architecture") | |
19 | endif() | |
20 | ||
21 | #linking | |
22 | if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) | |
23 | set(MPG123_CONFIGURATION_SUFFIX _Dll) | |
24 | endif() | |
25 | ||
26 | vcpkg_from_sourceforge( | |
27 | OUT_SOURCE_PATH SOURCE_PATH | |
28 | REPO mpg123/mpg123 | |
29 | REF ${MPG123_VERSION} | |
30 | FILENAME "mpg123-${MPG123_VERSION}.tar.bz2" | |
31 | SHA512 ${MPG123_HASH} | |
32 | PATCHES | |
33 | 0001-fix-x86-build.patch | |
34 | ) | |
35 | ||
36 | include(${CURRENT_INSTALLED_DIR}/share/yasm-tool-helper/yasm-tool-helper.cmake) | |
37 | yasm_tool_helper(APPEND_TO_PATH) | |
38 | ||
39 | macro(read_api_version) | |
40 | file(READ "${SOURCE_PATH}/configure.ac" configure_ac) | |
41 | string(REGEX MATCH "API_VERSION=([0-9]+)" result ${configure_ac}) | |
42 | set(API_VERSION ${CMAKE_MATCH_1}) | |
43 | endmacro() | |
44 | ||
45 | if(VCPKG_TARGET_IS_UWP) | |
46 | vcpkg_install_msbuild( | |
47 | SOURCE_PATH ${SOURCE_PATH} | |
48 | PROJECT_SUBPATH ports/MSVC++/2015/uwp/libmpg123/libmpg123.vcxproj | |
49 | OPTIONS /p:UseEnv=True | |
50 | PLATFORM ${MPG123_ARCH} | |
51 | RELEASE_CONFIGURATION Release_uwp | |
52 | DEBUG_CONFIGURATION Debug_uwp | |
53 | ) | |
54 | ||
55 | file(INSTALL | |
56 | ${SOURCE_PATH}/ports/MSVC++/mpg123.h | |
57 | ${SOURCE_PATH}/src/libmpg123/fmt123.h | |
58 | DESTINATION ${CURRENT_PACKAGES_DIR}/include | |
59 | ) | |
60 | ||
61 | read_api_version() | |
62 | configure_file( | |
63 | ${SOURCE_PATH}/src/libmpg123/mpg123.h.in | |
64 | ${CURRENT_PACKAGES_DIR}/include/mpg123.h.in @ONLY | |
65 | ) | |
66 | ||
67 | elseif(VCPKG_TARGET_IS_WINDOWS) | |
68 | vcpkg_install_msbuild( | |
69 | SOURCE_PATH ${SOURCE_PATH} | |
70 | PROJECT_SUBPATH ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj | |
71 | OPTIONS /p:UseEnv=True | |
72 | RELEASE_CONFIGURATION Release${MPG123_CONFIGURATION}${MPG123_CONFIGURATION_SUFFIX} | |
73 | DEBUG_CONFIGURATION Debug${MPG123_CONFIGURATION}${MPG123_CONFIGURATION_SUFFIX} | |
74 | ) | |
75 | ||
76 | file(INSTALL | |
77 | ${SOURCE_PATH}/ports/MSVC++/mpg123.h | |
78 | ${SOURCE_PATH}/src/libmpg123/fmt123.h | |
79 | DESTINATION ${CURRENT_PACKAGES_DIR}/include | |
80 | ) | |
81 | ||
82 | read_api_version() | |
83 | configure_file( | |
84 | ${SOURCE_PATH}/src/libmpg123/mpg123.h.in | |
85 | ${CURRENT_PACKAGES_DIR}/include/mpg123.h.in @ONLY | |
86 | ) | |
87 | ||
88 | elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_LINUX) | |
89 | set(MPG123_OPTIONS | |
90 | --disable-dependency-tracking | |
91 | ) | |
92 | ||
93 | # Find cross-compiler prefix | |
94 | if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) | |
95 | include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") | |
96 | endif() | |
97 | if(CMAKE_C_COMPILER) | |
98 | vcpkg_execute_required_process( | |
99 | COMMAND ${CMAKE_C_COMPILER} -dumpmachine | |
100 | WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} | |
101 | LOGNAME dumpmachine-${TARGET_TRIPLET} | |
102 | ) | |
103 | file(READ ${CURRENT_BUILDTREES_DIR}/dumpmachine-${TARGET_TRIPLET}-out.log MPG123_HOST) | |
104 | string(REPLACE "\n" "" MPG123_HOST "${MPG123_HOST}") | |
105 | message(STATUS "Cross-compiling with ${CMAKE_C_COMPILER}") | |
106 | message(STATUS "Detected autoconf triplet --host=${MPG123_HOST}") | |
107 | set(MPG123_OPTIONS | |
108 | --host=${MPG123_HOST} | |
109 | ${MPG123_OPTIONS} | |
110 | ) | |
111 | endif() | |
112 | ||
113 | vcpkg_configure_make( | |
114 | SOURCE_PATH ${SOURCE_PATH} | |
115 | OPTIONS ${MPG123_OPTIONS} | |
116 | ) | |
117 | vcpkg_install_make() | |
118 | vcpkg_fixup_pkgconfig() | |
119 | ||
120 | file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") | |
121 | endif() | |
122 | ||
123 | file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) | |
124 | ||
125 | message(STATUS "Installing done") |