Skip to content

Commit

Permalink
Switch build to cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
dgilman committed Dec 31, 2019
1 parent 9344079 commit d3a708c
Show file tree
Hide file tree
Showing 46 changed files with 300 additions and 4,083 deletions.
27 changes: 27 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: 1.0.{build}-{branch}
image: Visual Studio 2019

install:
- git submodule update --init --recursive
- cmake.exe -H. -Bbuild -T v142

build_script:
- msbuild.exe build/aacgain.sln -t:aacgain -p:Configuration=Release

test_script:
- C:\Python38\python.exe tests\test.py build\aacgain\Release\aacgain.exe

before_deploy:
- cmake.exe --build build --target install
- copy "C:\Program Files\aacgain\aacgain.exe" aacgain-2.0.0-windows-amd64.exe

deploy:
- provider: GitHub
artifact: aacgain-*.exe
draft: false
auth_token:
secure: efNJ/b8h3rXqahkooeZS+I4N/1DJIOgg8ek1X/sjKC+8f0Vgs+9Yy+vrR6f1t96X
prerelease: false
on:
branch: master
APPVEYOR_REPO_TAG: true
89 changes: 52 additions & 37 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,39 +1,54 @@
*.o
config.h
3rdparty/*-prefix/
3rdparty/bin/
3rdparty/include/
3rdparty/share/

# Out-of-source build dir
build

# Compiled Object files
**/.DS_Store
*.slo
*.lo
*.o
*.obj
*.swp
faad2/
mp4v2/

Makefile
Makefile.in
aacgain/.deps/
aacgain/Makefile
aacgain/Makefile.in
aacgain/aacgain
aclocal.m4
autom4te.cache/
compile
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
m4/
missing
mp3gain/.deps/
mp3gain/.libs/
mp3gain/Makefile
mp3gain/Makefile.in
mp3gain/libmp3gain.la
mp3gain/mpglibDBL/.deps/
mp3gain/mpglibDBL/.libs/
mp3gain/mpglibDBL/Makefile
mp3gain/mpglibDBL/Makefile.in
mp3gain/mpglibDBL/config.h
mp3gain/mpglibDBL/config.h.in
mp3gain/mpglibDBL/libmpglib.la
mp3gain/mpglibDBL/stamp-h1

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

**/cmake-build-debug
**/CMakeCache.txt
**/cmake_install.cmake
**/install_manifest.txt
**/CMakeFiles/
**/CTestTestfile.cmake
**/Makefile
**/*.cbp
**/CMakeScripts
**/compile_commands.json
**/*.vcxproj*
**/*.sln*
.vs
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "3rdparty/faad2"]
path = 3rdparty/faad2
url = https://github.com/dgilman/faad2.git
[submodule "3rdparty/mp4v2"]
path = 3rdparty/mp4v2
url = https://github.com/dgilman/mp4v2.git
29 changes: 25 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,32 @@
sudo: required
language: cpp
os:
- linux
- osx
compiler:
- clang
- gcc
env:
global:
- MAKEFLAGS="-j 2"
script: bash ./build.sh
script:
- mkdir build
- cmake -H. -Bbuild
- cd build; make
- cd $TRAVIS_BUILD_DIR; python3 tests/test.py build/aacgain/aacgain
before_deploy:
- cmake --build build --target install
- cp /usr/local/bin/aacgain aacgain-2.0.0-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}
jobs:
include:
- stage: deploy
if: tag IS present
compiler:
- gcc
os:
- linux
- osx
deploy:
skip_cleanup: true
provider: releases
api_key:
secure: 0q1PGXpaGEEcUilPcMbrHkuCR8GhlloVSsCRwox2Xfhe1rrAV1fGTAUF5m0zetXPY5A8h+aFMotEhEkH6tMlcJYOLqWhBMmWidVM6cdimlSP6OmCP/zHbJdoAFLXaGHtdUAnrdkSnm32H9sYzcfOtgaDCyQ20oc1hL1IxHQveCS1//i3gjjBMq7UT4T4MEoq7//vk3FwflzaoTRJ2ydYyoweWR7qy1PcVys3Q9mp9FYUxz2QZYgkF3YhWQXWFbV29VeXxDAyS7hcXC7V66bKT2rxVDUzu6rNqMjPstzWpRr5Kh9Orsp8Xsuox1cG6uAynXoTC0XqFDKP4J1sZruJ6xt10CNS4YpEcZnyRGOYX93c31ueryTJnQ+GEdl3rxbuswtkqccVqRowZgEFodHFrfbnjisdOH4kVzMGi/DjySr7noD7Y4OaX8+IENDVgt2p4KsazhXhUB6rJ/iOJHBedDCSLz9mIa14iBuU3yUpSUPXCdScc3TnloHCGGqq5Gxy7iu5QNhGfNCq4ErUFOYWcob8ETsoWCG1+nbDStECCcCr6kwMU/8B2ThmbDHO41YVDx9VjGXnnY5nfJNdHtwKa5wr1FQq3ROb1HM6jjlGNC8IF+jKzMs5mmFNSaM/r8D/cs2wE/IymH+1l+PXSjOw4Xulm4GdioYxFWyFzpIF13M=
on:
tags: true
58 changes: 58 additions & 0 deletions 3rdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
include(ExternalProject)

IF(UNIX)
include(ProcessorCount)
ProcessorCount(N)

ExternalProject_Add(faad2_proj
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/faad2"
CONFIGURE_COMMAND autoreconf -i && ./configure --prefix=${CMAKE_CURRENT_BINARY_DIR} --disable-shared --enable-static
BUILD_COMMAND make -j ${N}
INSTALL_COMMAND make -j ${N} install
BUILD_IN_SOURCE 1
)

ExternalProject_Add(mp4v2_proj
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/mp4v2"
CONFIGURE_COMMAND autoreconf -i && ./configure --prefix=${CMAKE_CURRENT_BINARY_DIR} --disable-shared --enable-static
BUILD_COMMAND make -j ${N}
INSTALL_COMMAND make -j ${N} install
BUILD_IN_SOURCE 1
)

set(PREFIX_CLEAN_DIRS bin include lib share)
set_directory_properties(PROPERTIES ADDITIONAL_CLEAN_FILES "${PREFIX_CLEAN_DIRS}")
ENDIF(UNIX)

IF(WIN32)
ExternalProject_Add(faad2_proj
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/faad2"
CONFIGURE_COMMAND ""
BUILD_COMMAND msbuild project/msvc/faad2.sln -t:libfaad -p:Configuration=Release -p:Platform=x64 -maxcpucount
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1
)
ExternalProject_Add(mp4v2_proj
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/mp4v2"
CONFIGURE_COMMAND ""
BUILD_COMMAND msbuild mp4v2-Win/mp4v2.sln -t:libmp4v2 -p:Configuration=Release -p:Platform=x64 -maxcpucount
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1
)
ENDIF(WIN32)

add_library(faad2 STATIC IMPORTED GLOBAL)
add_library(mp4v2 STATIC IMPORTED GLOBAL)

IF(UNIX)
set(FAAD_LIB_PATH "${CMAKE_CURRENT_BINARY_DIR}/lib/libfaad.a")
set(MP4V2_LIB_PATH "${CMAKE_CURRENT_BINARY_DIR}/lib/libmp4v2.a")
ENDIF(UNIX)

if(WIN32)
set(FAAD_LIB_PATH "${PROJECT_SOURCE_DIR}/3rdparty/faad2/project/msvc/x64/Release/libfaad.lib")
set(MP4V2_LIB_PATH "${PROJECT_SOURCE_DIR}/3rdparty/mp4v2/mp4v2-Win/bin/x64/Release/libmp4v2.lib")
ENDIF(WIN32)

set_target_properties(faad2 PROPERTIES IMPORTED_LOCATION "${FAAD_LIB_PATH}")
set_target_properties(mp4v2 PROPERTIES IMPORTED_LOCATION "${MP4V2_LIB_PATH}")
1 change: 1 addition & 0 deletions 3rdparty/faad2
Submodule faad2 added at baf67b
1 change: 1 addition & 0 deletions 3rdparty/mp4v2
Submodule mp4v2 added at cf634b
21 changes: 21 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.10)
project(aacgain VERSION 2.0.0)

add_subdirectory(3rdparty)

add_definitions(-DHAVE_CONFIG_H -DAACGAIN)

include(CheckIncludeFile)
include(CheckIncludeFiles)
check_include_file("inttypes.h" HAVE_INTTYPES_H)
check_include_file("stdint.h" HAVE_STDINT_H)
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)

configure_file("${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
)
include_directories("${PROJECT_BINARY_DIR}")
include_directories("${PROJECT_SOURCE_DIR}/aacgain")

add_subdirectory(mp3gain)
add_subdirectory(aacgain)
1 change: 0 additions & 1 deletion Makefile.am

This file was deleted.

29 changes: 29 additions & 0 deletions aacgain/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
add_executable(aacgain
aacgain.cpp decoder.c syntax.c MP4MetaFile.cpp)

target_include_directories(aacgain PRIVATE
# Is there a better way to do this than PROJECT_SOURCE_DIR
"${CMAKE_CURRENT_SOURCE_DIR}"
"${PROJECT_SOURCE_DIR}/mp3gain"
"${PROJECT_SOURCE_DIR}/aacgain"
"${PROJECT_BINARY_DIR}/3rdparty/include"
"${PROJECT_SOURCE_DIR}/3rdparty/mp4v2"
"${PROJECT_SOURCE_DIR}/3rdparty/faad2/libfaad"
# These two exist on UNIX but paths are needed on Windows
# as we have no install targets for Windows
"${PROJECT_SOURCE_DIR}/3rdparty/mp4v2/src"
"${PROJECT_SOURCE_DIR}/3rdparty/mp4v2/include"
"${PROJECT_SOURCE_DIR}/3rdparty/faad2/include"
"${PROJECT_BINARY_DIR}/aacgain"
)
target_link_libraries(aacgain PRIVATE
mp3gain
mpglib
faad2
mp4v2
)
add_dependencies(aacgain faad2_proj mp4v2_proj)
IF(UNIX)
target_compile_options(aacgain PRIVATE -Wall -Wextra)
ENDIF(UNIX)
install(TARGETS aacgain DESTINATION bin)
26 changes: 0 additions & 26 deletions aacgain/Makefile.am

This file was deleted.

Loading

0 comments on commit d3a708c

Please sign in to comment.