Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mpg123] Allow cross-compiling, fix previous builds tainting rebuilds #11535

Merged
merged 9 commits into from
Aug 1, 2020
3 changes: 2 additions & 1 deletion ports/mpg123/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Source: mpg123
Version: 1.25.8-12
Version: 1.25.8
Port-Version: 13
Homepage: https://sourceforge.net/projects/mpg123/
Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).
111 changes: 26 additions & 85 deletions ports/mpg123/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -116,97 +116,38 @@ elseif(VCPKG_TARGET_IS_WINDOWS)
${SOURCE_PATH}/src/libmpg123/mpg123.h.in
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
file(REMOVE_RECURSE ${SOURCE_PATH}/build/debug)
file(REMOVE_RECURSE ${SOURCE_PATH}/build/release)

################
# Debug build
################
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
vcpkg_execute_required_process(
COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/debug --enable-debug=yes --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME config-${TARGET_TRIPLET}-dbg
)
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done.")

message(STATUS "Installing ${TARGET_TRIPLET}-dbg")
vcpkg_execute_required_process(
COMMAND make -j install
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME build-${TARGET_TRIPLET}-dbg
)
message(STATUS "Installing ${TARGET_TRIPLET}-dbg done.")

################
# Release build
################
message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
vcpkg_execute_required_process(
COMMAND make distclean
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME config-${TARGET_TRIPLET}-dbg
)
vcpkg_execute_required_process(
COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/release --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME config-${TARGET_TRIPLET}-rel
)
message(STATUS "Configuring ${TARGET_TRIPLET}-rel done.")

message(STATUS "Installing ${TARGET_TRIPLET}-rel")
vcpkg_execute_required_process(
COMMAND make -j install
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME build-${TARGET_TRIPLET}-rel
)
message(STATUS "Installing ${TARGET_TRIPLET}-rel done.")

file(
INSTALL
"${SOURCE_PATH}/build/debug/include/fmt123.h"
"${SOURCE_PATH}/build/debug/include/mpg123.h"
"${SOURCE_PATH}/build/debug/include/out123.h"
DESTINATION
${CURRENT_PACKAGES_DIR}/include
elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_LINUX)
set(MPG123_OPTIONS
--disable-dependency-tracking
)

if(EXISTS "${SOURCE_PATH}/build/debug/lib64/libmpg123.a")
file(
INSTALL
"${SOURCE_PATH}/build/debug/lib64/libmpg123.a"
"${SOURCE_PATH}/build/debug/lib64/libout123.a"
DESTINATION
${CURRENT_INSTALLED_DIR}/debug/lib
)
else()
file(
INSTALL
"${SOURCE_PATH}/build/debug/lib/libmpg123.a"
"${SOURCE_PATH}/build/debug/lib/libout123.a"
DESTINATION
${CURRENT_INSTALLED_DIR}/debug/lib
)
# Find cross-compiler prefix
if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
endif()

if(EXISTS "${SOURCE_PATH}/build/release/lib64/libmpg123.a")
file(
INSTALL
"${SOURCE_PATH}/build/release/lib64/libmpg123.a"
"${SOURCE_PATH}/build/release/lib64/libout123.a"
DESTINATION
${CURRENT_PACKAGES_DIR}/lib
if(CMAKE_C_COMPILER)
vcpkg_execute_required_process(
COMMAND ${CMAKE_C_COMPILER} -dumpmachine
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
LOGNAME dumpmachine-${TARGET_TRIPLET}
)
else()
file(
INSTALL
"${SOURCE_PATH}/build/release/lib/libmpg123.a"
"${SOURCE_PATH}/build/release/lib/libout123.a"
DESTINATION
${CURRENT_PACKAGES_DIR}/lib
file(READ ${CURRENT_BUILDTREES_DIR}/dumpmachine-${TARGET_TRIPLET}-out.log MPG123_HOST)
string(REPLACE "\n" "" MPG123_HOST "${MPG123_HOST}")
message(STATUS "Cross-compiling with ${CMAKE_C_COMPILER}")
JackBoosY marked this conversation as resolved.
Show resolved Hide resolved
message(STATUS "Detected autoconf triplet --host=${MPG123_HOST}")
set(MPG123_OPTIONS
--host=${MPG123_HOST}
${MPG123_OPTIONS}
)
endif()

vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${MPG123_OPTIONS}
)
vcpkg_install_make()

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
endif()

file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
Expand Down
1 change: 1 addition & 0 deletions scripts/azure-pipelines/osx/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
brew list libtool || brew install libtool
brew list bison || brew install bison
brew list gfortran || brew cask install gfortran
brew list yasm || brew install yasm
displayName: 'Install brew dependencies'
- bash: |
sudo mkdir /Users/vagrant/Data/downloads || 0
Expand Down