More cmake updates
Added install target (this is mainly for Linux) Added mod-nyq-bench More to come...
This commit is contained in:
parent
54ba4e9b8a
commit
f0e3ee2cde
|
@ -213,21 +213,24 @@ macro( def_vars )
|
|||
set( _PUBDIR "${CMAKE_CURRENT_BINARY_DIR}/public" )
|
||||
endmacro()
|
||||
|
||||
# And define the non-context dependent paths
|
||||
set( _EXEDIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
|
||||
# Define the non-install and executable destinations
|
||||
set( _DEST "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
|
||||
if( CMAKE_BUILD_TYPE )
|
||||
set( _EXEDIR "${_EXEDIR}/${CMAKE_BUILD_TYPE}" )
|
||||
set( _DEST "${_DEST}/${CMAKE_BUILD_TYPE}" )
|
||||
endif()
|
||||
set( _EXEDIR "${_DEST}" )
|
||||
|
||||
# On the Mac, make it the content directory
|
||||
# Adjust them for the Mac
|
||||
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
||||
set( _EXEDIR "${_EXEDIR}/Audacity.app/Contents" )
|
||||
set( _DEST "${_DEST}/Audacity.app/Contents" )
|
||||
set( _EXEDIR "${_DEST}/Macos" )
|
||||
endif()
|
||||
|
||||
set( _MODDIR "${_EXEDIR}/modules" )
|
||||
set( _PREFIX "${CMAKE_INSTALL_PREFIX}" )
|
||||
set( _LIBDIR "${CMAKE_INSTALL_LIBDIR}/audacity" )
|
||||
set( _RPATH "\$ORIGIN/../${_LIBDIR}" )
|
||||
set( _DATADIR "${CMAKE_INSTALL_DATADIR}" )
|
||||
set( _PKGDATA "${_DATADIR}/audacity" )
|
||||
|
||||
# Helper to organize sources into folders for the IDEs
|
||||
macro( organize_source root prefix sources )
|
||||
|
@ -301,6 +304,7 @@ endmacro()
|
|||
# Add our children
|
||||
add_subdirectory( "cmake-proxies" )
|
||||
add_subdirectory( "help" )
|
||||
add_subdirectory( "images" )
|
||||
add_subdirectory( "locale" )
|
||||
add_subdirectory( "nyquist" )
|
||||
add_subdirectory( "plug-ins" )
|
||||
|
|
|
@ -29,9 +29,8 @@ list( APPEND LIBRARIES
|
|||
|
||||
set_target_properties( ${TARGET}
|
||||
PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE} "${_DEST}/modules"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${_DEST}/modules"
|
||||
PREFIX ""
|
||||
FOLDER "lib-src"
|
||||
)
|
||||
|
|
|
@ -32,9 +32,8 @@ list( APPEND LIBRARIES
|
|||
|
||||
set_target_properties( ${TARGET}
|
||||
PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${_MODDIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE} "${_DEST}/modules"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${_DEST}/modules"
|
||||
PREFIX ""
|
||||
FOLDER "lib-src"
|
||||
)
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
|
||||
set( TARGET manual )
|
||||
set( TARGET_ROOT ${topdir}/help )
|
||||
set( TARGET_ROOT ${topdir}/manual )
|
||||
|
||||
message( STATUS "========== Configuring ${TARGET} ==========" )
|
||||
|
||||
def_vars()
|
||||
|
||||
set( host "alphamanual.audacityteam.org" )
|
||||
set( src "https://${host}/man" )
|
||||
set( dst "$<TARGET_FILE_DIR:Audacity>/help/manual" )
|
||||
set( script_dir "${top_dir}/scripts/mw2html_audacity" )
|
||||
set( dst "${_DEST}/help/manual" )
|
||||
set( script_dir "${topdir}/scripts/mw2html_audacity" )
|
||||
set( script "mw2html.py" )
|
||||
set( out_dir "${CMAKE_CURRENT_BINARY_DIR}" )
|
||||
set( out_dir "${_INTDIR}" )
|
||||
set( out "${out_dir}/${host}/index.html" )
|
||||
|
||||
if( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
||||
|
@ -43,4 +45,13 @@ add_custom_command(
|
|||
)
|
||||
|
||||
add_custom_target( ${TARGET} DEPENDS "${out}" )
|
||||
add_dependencies( ${TARGET} Audacity )
|
||||
|
||||
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
|
||||
install( DIRECTORY "${dst}" OPTIONAL
|
||||
DESTINATION "${_DATADIR}/audacity/help" )
|
||||
install( FILES "${_SRCDIR}/audacity.1"
|
||||
DESTINATION "${_DATADIR}/man/man.1" )
|
||||
install( FILES "${_SRCDIR}/audacity.appdata.xml"
|
||||
DESTINATION "${_DATADIR}/appdata" )
|
||||
endif()
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
set( TARGET images )
|
||||
set( TARGET_ROOT ${topdir}/images )
|
||||
|
||||
message( STATUS "========== Configuring ${TARGET} ==========" )
|
||||
|
||||
def_vars()
|
||||
|
||||
# This isn't really a target...
|
||||
|
||||
list( APPEND PIXMAPS
|
||||
${_SRCDIR}/gnome-mime-application-x-audacity-project.xpm
|
||||
${_SRCDIR}/icons/16x16/audacity16.xpm
|
||||
${_SRCDIR}/icons/32x32/audacity32.xpm
|
||||
${_SRCDIR}/icons/48x48/audacity.xpm
|
||||
)
|
||||
|
||||
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
|
||||
install( FILES "${_SRCDIR}/audacity.svg"
|
||||
DESTINATION "${_DATADIR}/icons/hicolor/scalable/apps" )
|
||||
install( DIRECTORY "${_SRCDIR}/icons/"
|
||||
DESTINATION "${_DATADIR}/icons/hicolor" )
|
||||
install( FILES ${PIXMAPS}
|
||||
DESTINATION "${_DATADIR}/pixmaps" )
|
||||
endif()
|
||||
|
|
@ -128,16 +128,24 @@ if( NOT DEFINED msgfmt )
|
|||
return()
|
||||
endif()
|
||||
|
||||
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
||||
set( locale "${_DEST}/Resources" )
|
||||
elseif( CMAKE_SYSTEM_NAME MATCHES "Linux" )
|
||||
set( locale "${_DEST}/locale" )
|
||||
elseif( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
||||
set( locale "${_DEST}/Languanges" )
|
||||
endif()
|
||||
|
||||
set( OUTPUTS )
|
||||
foreach( source ${SOURCES} )
|
||||
get_filename_component( lang "${source}" NAME_WE )
|
||||
|
||||
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
||||
set( dst "${_EXEDIR}/Resources/${lang}.lproj" )
|
||||
set( dst "${locale}/${lang}.lproj" )
|
||||
elseif( CMAKE_SYSTEM_NAME MATCHES "Linux" )
|
||||
set( dst "${_EXEDIR}/locale/${lang}/LC_MESSAGES" )
|
||||
set( dst "${locale}/${lang}/LC_MESSAGES" )
|
||||
elseif( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
||||
set( dst "${_EXEDIR}/Languanges/${lang}" )
|
||||
set( dst "${locale}/${lang}" )
|
||||
endif()
|
||||
|
||||
set( po "${_SRCDIR}/${source}" )
|
||||
|
@ -160,7 +168,7 @@ foreach( source ${SOURCES} )
|
|||
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
||||
add_custom_command(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory "${_EXEDIR}/Resources/en.lproj"
|
||||
${CMAKE_COMMAND} -E make_directory "${_DEST}/Resources/en.lproj"
|
||||
OUTPUT
|
||||
"${mo}"
|
||||
APPEND
|
||||
|
@ -172,3 +180,8 @@ endforeach()
|
|||
|
||||
add_custom_target( "${TARGET}" ALL DEPENDS ${OUTPUTS} SOURCES "${SOURCES}" )
|
||||
|
||||
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
|
||||
install( DIRECTORY ${locale}/
|
||||
TYPE LOCALE )
|
||||
endif()
|
||||
|
||||
|
|
|
@ -55,13 +55,13 @@ list( APPEND SOURCES
|
|||
|
||||
foreach( source ${SOURCES} )
|
||||
set( src "${_SRCDIR}/${source}" )
|
||||
set( dst "${_EXEDIR}/${TARGET}/${source}" )
|
||||
set( dst "${_DEST}/${TARGET}/${source}" )
|
||||
|
||||
add_custom_command(
|
||||
DEPENDS
|
||||
"${src}"
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory "${_EXEDIR}/${TARGET}"
|
||||
${CMAKE_COMMAND} -E make_directory "${_DEST}/${TARGET}"
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy "${src}" "${dst}"
|
||||
OUTPUT
|
||||
|
@ -73,3 +73,8 @@ endforeach()
|
|||
|
||||
add_custom_target( ${TARGET} ALL DEPENDS ${OUTPUTS} SOURCES ${SOURCES} )
|
||||
|
||||
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
|
||||
install( DIRECTORY "${_DEST}/${TARGET}"
|
||||
DESTINATION "${_PKGDATA}" )
|
||||
endif()
|
||||
|
||||
|
|
|
@ -39,13 +39,13 @@ list( APPEND SOURCES
|
|||
|
||||
foreach( source ${SOURCES} )
|
||||
set( src "${_SRCDIR}/${source}" )
|
||||
set( dst "${_EXEDIR}/${TARGET}/${source}" )
|
||||
set( dst "${_DEST}/${TARGET}/${source}" )
|
||||
|
||||
add_custom_command(
|
||||
DEPENDS
|
||||
"${src}"
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory "${_EXEDIR}/${TARGET}"
|
||||
${CMAKE_COMMAND} -E make_directory "${_DEST}/${TARGET}"
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy "${src}" "${dst}"
|
||||
OUTPUT
|
||||
|
@ -57,3 +57,8 @@ endforeach()
|
|||
|
||||
add_custom_target( ${TARGET} ALL DEPENDS ${OUTPUTS} SOURCES ${SOURCES} )
|
||||
|
||||
if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
|
||||
install( DIRECTORY "${_DEST}/${TARGET}"
|
||||
DESTINATION "${_PKGDATA}" )
|
||||
endif()
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue