1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-05 16:43:52 +01:00

More cmake updates

Added install target (this is mainly for Linux)
Added mod-nyq-bench

More to come...
This commit is contained in:
Leland Lucius
2020-02-06 01:17:20 -06:00
parent 54ba4e9b8a
commit f0e3ee2cde
9 changed files with 155 additions and 51 deletions

View File

@@ -1025,6 +1025,7 @@ set( HAVE_GTK ${GTK_FOUND} )
set( DISABLE_DYNAMIC_LOADING_FFMPEG ${disable_dynamic_loading} )
if( CMAKE_SYSTEM_NAME MATCHES "Windows" )
set( _EXE "Audacity" )
set_directory_properties(
PROPERTIES
@@ -1061,18 +1062,19 @@ if( CMAKE_SYSTEM_NAME MATCHES "Windows" )
set( wxlibs "${CMAKE_BINARY_DIR}" )
endif()
file( TO_NATIVE_PATH ${_EXEDIR} exedir )
file( TO_NATIVE_PATH ${_DEST} dest )
add_custom_command(
TARGET
${TARGET}
COMMAND
XCOPY "*.dll" ${exedir} /I /R /Y
XCOPY "*.dll" ${dest} /I /R /Y
WORKING_DIRECTORY
"${wxlibs}/lib/vc_dll"
POST_BUILD
)
elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set( _EXE "Audacity" )
# Handle Audio Units option
option( enable_audiounits "Enable Audio Unit plug-in support" ON )
@@ -1132,15 +1134,17 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set( AUDACITY_INFO_VERSION ${AUDACITY_VERSION}.${AUDACITY_RELEASE}.${AUDACITY_REVISION}.${AUDACITY_MODLEVEL} )
# Copy the wxWidgets libraries into the bundle
add_custom_command(
TARGET
${TARGET}
COMMAND
sh -c "TARGET_BUILD_DIR=${_EXEDIR} EXECUTABLE_PATH=MacOS/Audacity FRAMEWORKS_FOLDER_PATH=Frameworks ${topdir}/mac/scripts/install_wxlibs.sh"
WORKING_DIRECTORY
${CMAKE_BINARY_DIR}/lib
POST_BUILD
)
if( "${CMAKE_GENERATOR}" MATCHES "Xcode" )
add_custom_command(
TARGET
${TARGET}
COMMAND
sh -c "TARGET_BUILD_DIR=${_DEST} EXECUTABLE_PATH=${_EXEDIR}/${_EXE} FRAMEWORKS_FOLDER_PATH=Frameworks ${topdir}/mac/scripts/install_wxlibs.sh"
# WORKING_DIRECTORY
# ${CMAKE_BINARY_DIR}/lib
POST_BUILD
)
endif()
# Define the Wrapper target
add_executable( Wrapper )
@@ -1157,9 +1161,8 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set_target_properties(
"Wrapper"
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${_EXEDIR}/MacOS"
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${_EXEDIR}/MacOS"
RUNTIME_OUTPUT_DIRECTORY "${_EXEDIR}/MacOS"
RUNTIME_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE} "${_EXEDIR}"
RUNTIME_OUTPUT_DIRECTORY "${_EXEDIR}"
)
organize_source( "${WRAPPER_ROOT}" "mac" "${WRAPPER_SOURCES}" )
@@ -1167,6 +1170,7 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
target_sources( "Wrapper" PRIVATE ${WRAPPER_SOURCES} )
elseif( CMAKE_SYSTEM_NAME MATCHES "Linux" )
set( _EXE "audacity" )
# Add additional library requirements
list( APPEND LIBRARIES
@@ -1180,9 +1184,30 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Linux" )
set( HAVE_VISIBILITY 1 )
configure_file( audacity_config.h.in private/configunix.h )
# Create the MIMETYPES list (must be a better way...)
if( USE_FFMPEG)
list( APPEND MIMETYPES "audio/aac;audio/ac3;audio/mp4;audio/x-ms-wma;video/mpeg" )
endif()
if( USE_LIBFLAC)
list( APPEND MIMETYPES "audio/flac;audio/x-flac" )
endif()
if( USE_LIBMAD )
list( APPEND MIMETYPES "audio/mpeg" )
endif()
if( USE_SNDFILE )
list( APPEND MIMETYPES "audio/basic;audio/x-aiff;audio/x-wav" )
endif()
if( USE_LIBOGG AND USE_LIBVORBIS )
list( APPEND MIMETYPES "application/ogg;audio/x-vorbis+ogg" )
endif()
# Create the desktop file
set( AUDACITY_NAME "${_EXE}" )
configure_file( audacity.desktop.in ${_INTDIR}/audacity.desktop )
# Create the script to copy required wxWidgets libraries
file( WRITE "${_INTDIR}/copy_libs.sh"
"for lib in \$(ldd ${_EXEDIR}/Audacity | awk '/libwx/{print \$1}')
"for lib in \$(ldd ${_EXEDIR}/${_EXE} | awk '/libwx/{print \$1}')
do
echo \${lib}
ldd ${WXWIN}/lib/\${lib} | awk '/libwx/{print \$1}'
@@ -1203,6 +1228,14 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Linux" )
endif()
set_target_properties(
${TARGET}
PROPERTIES
# Want a lowercase executable
RUNTIME_OUTPUT_NAME_${CMAKE_BUILD_TYPE} audacity
RUNTIME_OUTPUT_NAME ${_EXE}
)
find_package (Git)
if (GIT_FOUND)
execute_process(
@@ -1222,17 +1255,6 @@ if (GIT_FOUND)
)
endif()
install(
TARGETS
${TARGET}
CONFIGURATIONS
"" Debug Release RelWithDebInfo RelWithDebInfo
RUNTIME DESTINATION
${CMAKE_INSTALL_BINDIR}
BUNDLE DESTINATION
${CMAKE_INSTALL_BINDIR}
)
organize_source( "${TARGET_ROOT}/.." "include" "${HEADERS}" )
organize_source( "${TARGET_ROOT}/../win" "win" "${RESOURCES}" )
organize_source( "${TARGET_ROOT}" "src" "${SOURCES}" )
@@ -1245,3 +1267,23 @@ target_link_options( "${TARGET}" PRIVATE ${LDFLAGS} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )
target_precompile_headers( ${TARGET} PRIVATE ${PRECOMP} )
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
install( FILES "${_DEST}/Info.plist"
DESTINATION "${CMAKE_INSTALL_BINDIR}/Audacity.app/Contents" )
install( PROGRAMS "${_EXEDIR}/${_EXE}" "${_EXEDIR}/Wrapper"
DESTINATION "${CMAKE_INSTALL_BINDIR}/Audacity.app/Contents/MacOS" )
else()
install( PROGRAMS "${_EXEDIR}/${_EXE}"
TYPE BIN )
install( FILES "${_INTDIR}/audacity.desktop"
DESTINATION "${_DATADIR}/applications" )
install( FILES "${topdir}/LICENSE.txt" "${topdir}/README.txt"
DESTINATION "${_DATADIR}/doc" )
install( FILES "${_SRCDIR}/audacity.xml"
DESTINATION "${_DATADIR}/mime/packages" )
install( FILES "${topdir}/presets/EQDefaultCurves.xml"
DESTINATION "${_PKGDATA}" )
endif()
endif()