Browse Source

Updates the cmake build system

It's still has some work, but it successfully builds on
all 3 main platforms.  Some of the outstanding items
include:

   Install target testing (mostly important for Linux)
   CMakeList clean up and comments
   Debug and Release build verification
   Audit of compile/link options
   Need a Mac signed and notarized build
   (and probably more)
au-ny-api
Leland Lucius 2 years ago
parent
commit
6217351a12
  1. 277
      CMakeLists.txt
  2. 123
      cmake-proxies/CMakeLists.txt
  3. 97
      cmake-proxies/FileDialog/CMakeLists.txt
  4. 240
      cmake-proxies/cmake-modules/MacOSXBundleInfo.plist.in
  5. 4190
      cmake-proxies/cmake-modules/cotire.cmake
  6. 47
      cmake-proxies/expat/CMakeLists.txt
  7. 106
      cmake-proxies/lame/CMakeLists.txt
  8. 371
      cmake-proxies/lame/config.h.in
  9. 1342
      cmake-proxies/lame/lame.h.in
  10. 26
      cmake-proxies/lib-widget-extra/CMakeLists.txt
  11. 96
      cmake-proxies/lib-widget-extra/config.h.in
  12. 316
      cmake-proxies/libflac/CMakeLists.txt
  13. 234
      cmake-proxies/libflac/config.h.in
  14. 74
      cmake-proxies/libid3tag/CMakeLists.txt
  15. 86
      cmake-proxies/libid3tag/config.h.in
  16. 82
      cmake-proxies/libmad/CMakeLists.txt
  17. 215
      cmake-proxies/libmad/config.h.in
  18. 15
      cmake-proxies/libmad/mad.h.in
  19. 575
      cmake-proxies/libnyquist/CMakeLists.txt
  20. 143
      cmake-proxies/libogg/CMakeLists.txt
  21. 25
      cmake-proxies/libogg/config_types.h.in
  22. 51
      cmake-proxies/libscorealign/CMakeLists.txt
  23. 346
      cmake-proxies/libsndfile/CMakeLists.txt
  24. 44
      cmake-proxies/libsndfile/clipcheck.c
  25. 287
      cmake-proxies/libsndfile/config.h.in
  26. 12
      cmake-proxies/libsndfile/famcheck.c
  27. 666
      cmake-proxies/libsndfile/sndfile.h.in
  28. 146
      cmake-proxies/libsoxr/CMakeLists.txt
  29. 27
      cmake-proxies/libsoxr/soxr-config.h.in
  30. 66
      cmake-proxies/libvamp/CMakeLists.txt
  31. 119
      cmake-proxies/libvorbis/CMakeLists.txt
  32. 94
      cmake-proxies/libvorbis/config.h.in
  33. 358
      cmake-proxies/lv2/CMakeLists.txt
  34. 24
      cmake-proxies/lv2/lilv_config.h.in
  35. 12
      cmake-proxies/lv2/serd_config.h.in
  36. 11
      cmake-proxies/lv2/sord_config.h.in
  37. 11
      cmake-proxies/lv2/sratom_config.h.in
  38. 34
      cmake-proxies/lv2/suil_config.h.in
  39. 192
      cmake-proxies/portaudio-v19/CMakeLists.txt
  40. 59
      cmake-proxies/portmidi/CMakeLists.txt
  41. 80
      cmake-proxies/portmixer/CMakeLists.txt
  42. 49
      cmake-proxies/portsmf/CMakeLists.txt
  43. 80
      cmake-proxies/sbsms/CMakeLists.txt
  44. 75
      cmake-proxies/sbsms/config.h.in
  45. 80
      cmake-proxies/soundtouch/CMakeLists.txt
  46. 75
      cmake-proxies/soundtouch/soundtouch_config.h.in
  47. 90
      cmake-proxies/twolame/CMakeLists.txt
  48. 96
      cmake-proxies/twolame/config.h.in
  49. 109
      cmake-proxies/wxwidgets/CMakeLists.txt
  50. 46
      help/CMakeLists.txt
  51. 34
      lib-src/CMakeLists.txt
  52. 174
      locale/CMakeLists.txt
  53. 75
      nyquist/CMakeLists.txt
  54. 59
      plug-ins/CMakeLists.txt
  55. 1691
      src/CMakeLists.txt
  56. 107
      src/audacity_config.h.in
  57. 5
      win/packages.config

277
CMakeLists.txt

@ -1,35 +1,264 @@
#directory audacity top level
# 3.8 so we can use source_group
# cotire only needs 2.8.12
cmake_minimum_required (VERSION 3.8)
cmake_policy(SET CMP0043 NEW) # just hide an annoying warning in 3.0.2
# If you want built-in precompiled header support
# then make sure you have cmake 3.16 or higher.
cmake_minimum_required( VERSION 3.14 )
# Renaming. Could just use the official name throughout.
set( top_dir ${CMAKE_SOURCE_DIR} )
# Don't allow in-source builds...no real reason, just
# keeping those source trees nice and tidy. :-)
# (This can be removed if it becomes an issue.)
if( EXISTS "lib-src" )
message( FATAL_ERROR
"In-source builds not allowed.\n"
"Create a new directory and run cmake from there, i.e.:\n"
" mkdir build\n"
" cd build\n"
" cmake ..\n"
"You will need to delete CMakeCache.txt and CMakeFiles from this directory to clean up."
)
endif()
# Path for cotire.cmake, and later for our wxwidgets.cmake.
# Ignore COMPILE_DEFINITIONS_<Config> properties
cmake_policy( SET CMP0043 NEW )
# ``INTERPROCEDURAL_OPTIMIZATION`` is enforced when enabled.
cmake_policy( SET CMP0069 NEW )
# ``FindOpenGL`` prefers GLVND by default when available.
cmake_policy( SET CMP0072 NEW )
# Include file check macros honor ``CMAKE_REQUIRED_LIBRARIES``.
cmake_policy( SET CMP0075 NEW )
if( WIN32 )
# The NuGet packages that the Windows build requires
# (Only here for visibility)
set( GETTEXT_NAME "Gettext.Tools" )
set( GETTEXT_VERSION "0.20.1.1" )
set( PYTHON_NAME "python2" )
set( PYTHON_VERSION "2.7.17" )
# Define the SDK version we require
set( CMAKE_SYSTEM_VERSION "10.0.17763.0" CACHE INTERNAL "" )
elseif( APPLE )
# Define the OSX compatibility parameters
set( CMAKE_OSX_ARCHITECTURES x86_64 CACHE INTERNAL "" )
set( CMAKE_OSX_DEPLOYMENT_TARGET 10.7 CACHE INTERNAL "" )
set( CMAKE_OSX_SYSROOT macosx CACHE INTERNAL "" )
# A bit of a no-no, but couldn't figure out a better way to make it GLOBAL
set( CMAKE_CXX_FLAGS "-stdlib=libc++ -std=gnu++11" )
endif()
# Add our module path
set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake-proxies/cmake-modules)
include(cotire)
# These stop the results being mixed in with our source tree.
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# This "is a good thing" but greatly increases link time on Linux
#set( CMAKE_INTERPROCEDURAL_OPTIMIZATION ON )
#set( CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF )
#set( CMAKE_INTERPROCEDURAL_OPTIMIZATION_Debug OFF )
# Our very own project
project( Audacity )
# Pull all the modules we'll need
include( CheckCXXCompilerFlag )
include( CheckIncludeFile )
include( CheckIncludeFiles )
include( CheckLibraryExists )
include( CheckSymbolExists )
include( CheckTypeSize )
include( CMakeDetermineASM_NASMCompiler )
include( CMakePushCheckState )
include( GNUInstallDirs )
include( TestBigEndian )
# Organize subdirectories/targets into folders for the IDEs
set_property( GLOBAL PROPERTY USE_FOLDERS ON )
# Make sure Audacity is the startup project on Windows
if( CMAKE_GENERATOR MATCHES "Visual Studio" )
set_directory_properties(
PROPERTIES
VS_STARTUP_PROJECT "${CMAKE_PROJECT_NAME}"
)
endif()
# Where the final product is stored
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/audacity )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/audacity )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
# Set up RPATH handling
set( CMAKE_SKIP_BUILD_RPATH FALSE )
set( CMAKE_BUILD_WITH_INSTALL_RPATH FALSE )
set( CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}/audacity" )
set( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
set( CMAKE_MACOSX_RPATH FALSE )
# the RPATH to be used when installing, but only if it's not a system directory
#list( FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" isSystemDir)
#IF("${isSystemDir}" STREQUAL "-1")
# SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
#ENDIF("${isSystemDir}" STREQUAL "-1")
# Just a couple of convenience variables
set( topdir "${CMAKE_SOURCE_DIR}" )
set( libsrc "${topdir}/lib-src" )
# Add the math library (if found) to the list of required libraries
check_library_exists( m pow "" HAVE_LIBM )
if( HAVE_LIBM )
list( APPEND CMAKE_REQUIRED_LIBRARIES -lm )
endif()
# Add the dynamic linker library (if found) to the list of required libraries
check_library_exists( dl dlopen "" HAVE_LIBDL )
if( HAVE_LIBDL )
list( APPEND CMAKE_REQUIRED_LIBRARIES -ldl )
endif()
# Make sure they're used during the link steps
set( CMAKE_LINK_INTERFACE_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} )
# Various common checks whose results are used by the various targets
test_big_endian( WORDS_BIGENDIAN )
check_include_files( "float.h;stdarg.h;stdlib.h;string.h" STDC_HEADERS )
check_include_file( "byteswap.h" HAVE_BYTESWAP_H )
check_include_file( "assert.h" HAVE_ASSERT_H )
check_include_file( "errno.h" HAVE_ERRNO_H )
check_include_file( "fcntl.h" HAVE_FCNTL_H )
check_include_file( "fenv.h" HAVE_FENV_H )
check_include_file( "inttypes.h" HAVE_INTTYPES_H )
check_include_file( "limits.h" HAVE_LIMITS_H )
check_include_file( "malloc.h" HAVE_MALLOC_H )
check_include_file( "memory.h" HAVE_MEMORY_H )
check_include_file( "stdbool.h" HAVE_STDBOOL_H )
check_include_file( "stdint.h" HAVE_STDINT_H )
check_include_file( "stdlib.h" HAVE_STDLIB_H )
check_include_file( "string.h" HAVE_STRING_H )
check_include_file( "strings.h" HAVE_STRINGS_H )
check_include_file( "unistd.h" HAVE_UNISTD_H )
check_include_file( "xmmintrin.h" HAVE_XMMINTRIN_H )
check_include_file( "sys/param.h" HAVE_SYS_PARAM_H )
check_include_file( "sys/stat.h" HAVE_SYS_STAT_H )
check_include_file( "sys/types.h" HAVE_SYS_TYPES_H )
check_symbol_exists( fileno "stdio.h" HAVE_FILENO )
check_symbol_exists( flock "sys/file.h" HAVE_FLOCK )
check_symbol_exists( fork "unistd.h" HAVE_FORK )
check_symbol_exists( fsync "unistd.h" HAVE_FSYNC )
check_symbol_exists( ftruncate "unistd.h" HAVE_FTRUNCATE )
check_symbol_exists( gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY )
check_symbol_exists( gmtime "time.h" HAVE_GMTIME )
check_symbol_exists( gmtime_r "time.h" HAVE_GMTIME_R )
check_symbol_exists( lrint "math.h" HAVE_LRINT )
check_symbol_exists( lrintf "math.h" HAVE_LRINTF )
check_symbol_exists( lround "math.h" HAVE_LROUND )
check_symbol_exists( lstat "sys/stat.h" HAVE_LSTAT )
check_symbol_exists( memcpy "string.h" HAVE_MEMCPY )
check_symbol_exists( pipe "unistd.h" HAVE_PIPE )
check_symbol_exists( posix_fadvise "fcntl.h" HAVE_POSIX_FADVISE )
check_symbol_exists( posix_memalign "stdlib.h" HAVE_POSIX_MEMALIGN )
check_symbol_exists( strchr "string.h" HAVE_STRCHR )
check_symbol_exists( waitpid "sys/wait.h" HAVE_WAITPID )
check_type_size( "int8_t" SIZEOF_INT8 LANGUAGE C )
check_type_size( "int16_t" SIZEOF_INT16 LANGUAGE C )
check_type_size( "uint16_t" SIZEOF_UINT16 LANGUAGE C )
check_type_size( "u_int16_t" SIZEOF_U_INT16 LANGUAGE C )
check_type_size( "int32_t" SIZEOF_INT32 LANGUAGE C )
check_type_size( "uint32_t" SIZEOF_UINT32 LANGUAGE C )
check_type_size( "u_int32_t" SIZEOF_U_INT32 LANGUAGE C )
check_type_size( "int64_t" SIZEOF_INT64 LANGUAGE C )
check_type_size( "short" SIZEOF_SHORT LANGUAGE C )
check_type_size( "unsigned short" SIZEOF_UNSIGNED_SHORT LANGUAGE C )
check_type_size( "int" SIZEOF_INT LANGUAGE C )
check_type_size( "unsigned int" SIZEOF_UNSIGNED_INT LANGUAGE C )
check_type_size( "long" SIZEOF_LONG LANGUAGE C )
check_type_size( "unsigned long" SIZEOF_UNSIGNED_LONG LANGUAGE C )
check_type_size( "long long" SIZEOF_LONG_LONG LANGUAGE C )
check_type_size( "unsigned long long" SIZEOF_UNSIGNED_LONG_LONG LANGUAGE C )
check_type_size( "float" SIZEOF_FLOAT LANGUAGE C )
check_type_size( "double" SIZEOF_DOUBLE LANGUAGE C )
check_type_size( "long double" SIZEOF_LONG_DOUBLE LANGUAGE C )
check_type_size( "loff_t" SIZEOF_LOFF LANGUAGE C )
check_type_size( "off_t" SIZEOF_OFF LANGUAGE C )
check_type_size( "off64_t" SIZEOF_OFF64 LANGUAGE C )
check_type_size( "size_t" SIZEOF_SIZE LANGUAGE C )
check_type_size( "wchar_t" SIZEOF_WCHAR LANGUAGE C )
check_type_size( "void*" SIZEOF_POINTER LANGUAGE C )
find_package( PkgConfig )
find_package( OpenGL )
# When called will define several useful directory paths for the
# current context.
macro( def_vars )
set( _SRCDIR "${CMAKE_CURRENT_SOURCE_DIR}" )
set( _INTDIR "${CMAKE_CURRENT_BINARY_DIR}" )
set( _PRVDIR "${CMAKE_CURRENT_BINARY_DIR}/private" )
set( _PUBDIR "${CMAKE_CURRENT_BINARY_DIR}/public" )
endmacro()
# And define the non-context dependent paths
set( _EXEDIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}" )
# These aren't really context dependent, but...
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set( _EXEDIR "${_EXEDIR}/Audacity.app/Contents" )
endif()
set( _MODDIR "${_EXEDIR}/modules" )
set( _RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/audacity" )
# Helper to organize sources into folder for the IDEs
macro( organize_source root prefix sources )
set( cleaned )
foreach(source ${sources})
# Remove generator expressions
string( REGEX REPLACE ".*>:(.*)>" "\\1" source "${source}" )
# Remove keywords
string( REGEX REPLACE "^[A-Z]+$" "" source "${source}" )
# On Windows, WXWIN needs to be set to wxWidgets directory, for wxWidgets to
# be found automatically OR you need to have wxWidgets installed in the
# standard location on drive C: (or D:).
# If you are using wxWidgets 3.1 or later, you will need to update
# cmake's FindwxWidgets.cmake file, since 3.1.1 is not listed.
# Add to cleaned
list( APPEND cleaned "${source}" )
endforeach()
# Define source groups
if( "${prefix}" STREQUAL "" )
source_group( TREE "${root}" FILES ${cleaned} )
else()
source_group( TREE "${root}" PREFIX ${prefix} FILES ${cleaned} )
endif()
endmacro()
# These aren't needed, provided you took heed of the above.
#set( wxWidgets_ROOT_DIR "C:/wxWidgets-3.1.1" )
#set( wxWidgets_LIB_DIR "C:/wxWidgets-3.1.1/lib/vc_lib" )
#set( wxWidgets_CONFIGURATION "mswud" )
# Given a directory, recurse to all defined subdirectories and assign
# the given folder name to all of the targets found.
function( set_dir_folder dir folder)
get_property( subdirs DIRECTORY "${dir}" PROPERTY SUBDIRECTORIES )
foreach( sub ${subdirs} )
set_dir_folder( "${sub}" "${folder}" )
endforeach()
get_property( targets DIRECTORY "${dir}" PROPERTY BUILDSYSTEM_TARGETS )
foreach( target ${targets} )
get_target_property( type "${target}" TYPE )
if( NOT "${type}" STREQUAL "INTERFACE_LIBRARY" )
set_target_properties( ${target} PROPERTIES FOLDER ${folder} )
endif()
endforeach()
endfunction()
#add_subdirectory( "lib-src" ) #All lib building happens via the proxies.
# Add our children
add_subdirectory( "cmake-proxies" )
add_subdirectory( "help" )
add_subdirectory( "locale" )
add_subdirectory( "nyquist" )
add_subdirectory( "plug-ins" )
add_subdirectory( "src" )
# Uncomment what follows for symbol values.
@ -38,5 +267,5 @@ get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
]]#
#]]

123
cmake-proxies/CMakeLists.txt

@ -1,5 +1,3 @@
#directory cmake-proxies
set( LIB_SRC_DIRECTORY ${top_dir}/lib-src/ )
#These are done in their actual directories, no need for a proxy.
@ -10,34 +8,93 @@ set( LIB_SRC_DIRECTORY ${top_dir}/lib-src/ )
#These are all headers, nothing to build.
#add_subdirectory( "ffmpeg" )
#add_subdirectory( "lame" )
# libexpat
set( BUILD_shared OFF CACHE INTERNAL "" FORCE )
add_subdirectory( "${LIB_SRC_DIRECTORY}expat" "${CMAKE_CURRENT_BINARY_DIR}/expat" EXCLUDE_FROM_ALL )
set_target_properties(expat PROPERTIES OSX_ARCHITECTURES "")
add_subdirectory( "FileDialog" )
#add_subdirectory( "help" )
add_subdirectory( "libogg" )
add_subdirectory( "libflac" )
add_subdirectory( "libid3tag" )
add_subdirectory( "libmad" )
add_subdirectory( "libnyquist" )
add_subdirectory( "libscorealign" )
add_subdirectory( "libsndfile" )
add_subdirectory( "libsoxr" )
add_subdirectory( "libvamp" )
add_subdirectory( "libvorbis" )
#add_subdirectory( "locale" )
add_subdirectory( "lv2" )
add_subdirectory( "mod-script-pipe" )
add_subdirectory( "portaudio-v19" )
add_subdirectory( "portmidi" )
add_subdirectory( "portmixer" )
#add_subdirectory( "portburn" ) # not built
add_subdirectory( "portsmf" )
add_subdirectory( "sbsms" )
add_subdirectory( "soundtouch" )
add_subdirectory( "twolame" )
function( addlib dir name symbol required version )
message( STATUS "========== Configuring ${name} ==========" )
set( TARGET ${dir} )
set( enable enable_${name} )
if( NOT ${required} )
option( ${enable} "Enable ${name} library" ON )
else()
set( ${enable} ON )
endif()
set( use_system use_system_${name} )
if( PkgConfig_FOUND AND version )
option( ${use_system} "Prefer ${name} system library if available" OFF )
else()
set( ${use_system} OFF )
endif()
if( NOT ${${enable}} )
return()
endif()
set( USE_${symbol} ON CACHE INTERNAL USE_${symbol} )
if( ${${use_system}} )
pkg_check_modules( ${name} ${version} )
if( ${${name}_FOUND} )
message( STATUS "Using SYSTEM '${name}' package" )
add_library( ${TARGET} INTERFACE IMPORTED GLOBAL )
target_compile_options( ${TARGET} INTERFACE ${${name}_CFLAGS_OTHER} )
target_include_directories( ${TARGET} INTERFACE ${${name}_INCLUDE_DIRS} )
target_link_libraries( ${TARGET} INTERFACE ${${name}_LIBRARIES} )
return()
endif()
endif()
message( STATUS "Using LOCAL '${name}' package" )
set( TARGET_ROOT ${libsrc}/${dir} )
add_subdirectory( ${dir} EXCLUDE_FROM_ALL )
get_property( targets DIRECTORY "${dir}" PROPERTY BUILDSYSTEM_TARGETS )
foreach( target ${targets} )
get_target_property( type "${target}" TYPE )
if( NOT "${type}" STREQUAL "INTERFACE_LIBRARY" )
# Add "global" defines
set( DEFINES
NDEBUG
)
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
set_target_properties( ${target} PROPERTIES FOLDER "lib-src" )
endif()
endforeach()
endfunction()
# Required libraries
#
# directory option symbol req version
addlib( wxwidgets wxWidgets WXWIDGETS YES "" )
addlib( FileDialog FileDialog FILEDIALOG YES "" )
addlib( expat expat EXPAT YES "" )
addlib( lame lame LAME YES "lame >= 3.100" )
addlib( lib-widget-extra libextra WIDGET YES "" )
addlib( libsndfile sndfile SNDFILE YES "sndfile >= 1.0.24" )
addlib( libsoxr soxr SOXR YES "soxr >= 0.1.1" )
addlib( portaudio-v19 portaudio PORTAUDIO YES "" )
# Optional libraries
#
# directory option symbol req version
addlib( lv2 lv2 LV2 NO "lilv-0 >= 0.24.6 lv2 >= 1.16.0 serd-0 >= 0.30.2 sord-0 >= 0.16.4 sratom-0 >= 0.6.4" )
addlib( libid3tag id3tag LIBID3TAG NO "id3tag >= 0.15.1b" )
addlib( libmad mad LIBMAD NO "mad >= 2.3" )
addlib( libnyquist nyquist NYQUIST NO "" )
addlib( libvamp vamp VAMP NO "vamp >= 2.5" )
addlib( libogg ogg LIBOGG NO "ogg >= 1.3.1" )
addlib( libvorbis vorbis LIBVORBIS NO "vorbis >= 1.3.3" )
addlib( libflac flac LIBFLAC NO "flac >= 1.3.1" )
addlib( portmidi midi PORTMIDI NO "portmidi >= 0.1" )
addlib( portmixer portmixer PORTMIXER NO "" )
addlib( portsmf portsmf PORTSMF NO "portsmf >= 0.1" )
addlib( sbsms sbsms SBSMS NO "sbsms >= 2.0.2" )
addlib( soundtouch soundtouch SOUNDTOUCH NO "soundtouch >= 1.7.1" )
addlib( twolame twolame LIBTWOLAME NO "twolame >= 0.3.13" )

97
cmake-proxies/FileDialog/CMakeLists.txt

@ -1,49 +1,48 @@
#directory lib-src/FileDialog
set(TARGET FileDialog)
set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET})
project(${TARGET})
add_library(${TARGET} STATIC ${LIB_SRC_DIRECTORY}FileDialog/FileDialog.cpp)
target_include_directories(${TARGET} PRIVATE ${TARGET_SOURCE})
set_target_properties(${TARGET} PROPERTIES
CXX_STANDARD 11
OSX_ARCHITECTURES "")
find_package(wxWidgets REQUIRED COMPONENTS net core base)
include(${wxWidgets_USE_FILE})
target_compile_definitions(${TARGET} PRIVATE ${wxWidgets_DEFINITIONS})
target_compile_options(${TARGET} PRIVATE ${wxWidgets_CXX_FLAGS})
target_link_libraries(${TARGET} PRIVATE ${wxWidgets_LIBRARIES})
if(WIN32)
target_sources(${TARGET} PRIVATE ${LIB_SRC_DIRECTORY}FileDialog/win/FileDialogPrivate.cpp)
target_compile_definitions(${TARGET} PRIVATE __WIN32__)
target_include_directories(${TARGET} PRIVATE ${TARGET_SOURCE}/win)
elseif(APPLE)
target_sources(${TARGET} PRIVATE ${LIB_SRC_DIRECTORY}FileDialog/mac/FileDialogPrivate.mm)
target_compile_options(${TARGET} PRIVATE -Wno-deprecated-declarations)
target_include_directories(${TARGET} PRIVATE ${TARGET_SOURCE}/mac)
else()
target_sources(${TARGET} PRIVATE ${LIB_SRC_DIRECTORY}FileDialog/gtk/FileDialogPrivate.cpp)
find_program(wxWidgets_CONFIG_EXECUTABLE
NAMES wx-config wx-config-3.1 wx-config-3.0 wx-config-2.9 wx-config-2.8
ONLY_CMAKE_FIND_ROOT_PATH)
execute_process(
COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" --query-toolkit
OUTPUT_VARIABLE WXGTK
RESULT_VARIABLE RET
ERROR_QUIET)
string(STRIP "${WXGTK}" WXGTK)
if(RET EQUAL 0 AND WXGTK STREQUAL "gtk3")
set(GTK_PACKAGE gtk+-3.0)
else()
set(GTK_PACKAGE gtk+-2.0)
endif()
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED ${GTK_PACKAGE})
target_compile_options(${TARGET} PRIVATE -Wno-deprecated-declarations ${GTK_CFLAGS})
target_include_directories(${TARGET} PRIVATE ${TARGET_SOURCE}/gtk ${GTK_INCLUDE_DIRS})
target_link_libraries(${TARGET} PUBLIC ${GTK_LIBRARIES})
endif()
add_library( ${TARGET} STATIC )
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/FileDialog.cpp
$<$<PLATFORM_ID:Windows>:${TARGET_ROOT}/win/FileDialogPrivate.cpp>
$<$<PLATFORM_ID:Darwin>:${TARGET_ROOT}/mac/FileDialogPrivate.mm>
$<$<PLATFORM_ID:Linux>:${TARGET_ROOT}/gtk/FileDialogPrivate.cpp>
)
list( APPEND INCLUDES
PUBLIC
${TARGET_ROOT}
)
list( APPEND DEFINES
PRIVATE
$<$<PLATFORM_ID:Windows>:__WIN32__>
)
list( APPEND OPTIONS
PRIVATE
$<$<PLATFORM_ID:Windows>:/permissive->
$<$<PLATFORM_ID:Darwin>:-Wno-deprecated-declarations>
$<$<PLATFORM_ID:Linux>:-Wno-deprecated-declarations>
)
list( APPEND FEATURES
PRIVATE
cxx_std_11
)
list( APPEND LIBRARIES
PRIVATE
wxwidgets
PUBLIC
$<$<PLATFORM_ID:Linux>:PkgConfig::GTK>
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_compile_features( ${TARGET} PRIVATE ${FEATURES} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

240
cmake-proxies/cmake-modules/MacOSXBundleInfo.plist.in

@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>aup</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityProject.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-audacity-project</string>
</array>
<key>CFBundleTypeName</key>
<string>Audacity Project</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>auDp</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>wav</string>
<string>wave</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityWAV.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/wav</string>
<string>audio/x-wav</string>
</array>
<key>CFBundleTypeName</key>
<string>WAV Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>WAV </string>
<string>wav </string>
<string>WAVE</string>
<string>wave</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>aif</string>
<string>aiff</string>
<string>aifc</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityAIFF.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/aiff</string>
<string>audio/x-aiff</string>
</array>
<key>CFBundleTypeName</key>
<string>AIFF Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>AIFF</string>
<string>AIFC</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>au</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityAU.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/au</string>
</array>
<key>CFBundleTypeName</key>
<string>AU Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>AU </string>
<string>au </string>
<string>snd </string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mp3</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityMP3.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/mpeg</string>
<string>audio/x-mpeg</string>
<string>audio/mpeg3</string>
<string>audio/x-mpeg3</string>
<string>audio/mpg</string>
<string>audio/x-mpg</string>
<string>audio/mp3</string>
<string>audio/x-mp3</string>
</array>
<key>CFBundleTypeName</key>
<string>MP3 Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>mp3!</string>
<string>MP3!</string>
<string>MPG3</string>
<string>mpg3</string>
<string>Mp3 </string>
<string>MP3 </string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>ogg</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityOGG.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/ogg</string>
<string>audio/x-ogg</string>
<string>audio/vorbis</string>
<string>audio/x-vorbis</string>
<string>audio/vorbisogg</string>
<string>audio/x-vorbisogg</string>
<string>audio/ogg-vorbis</string>
<string>audio/x-ogg-vorbis</string>
</array>
<key>CFBundleTypeName</key>
<string>Ogg Vorbis Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>Ogg </string>
<string>OGG </string>
<string>OggS</string>
<string>OGGS</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>flac</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>AudacityFLAC.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/flac</string>
<string>audio/x-flac</string>
</array>
<key>CFBundleTypeName</key>
<string>FLAC Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>flac</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>m4a</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/m4a</string>
<string>audio/x-m4a</string>
</array>
<key>CFBundleTypeName</key>
<string>MPEG-4 Audio File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>M4A </string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>Audacity</string>
<key>CFBundleGetInfoString</key>
<string>Audacity version ${AUDACITY_INFO_VERSION}</string>
<key>CFBundleIconFile</key>
<string>Audacity.icns</string>
<key>CFBundleIdentifier</key>
<string>org.audacityteam.audacity</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>Version ${AUDACITY_INFO_VERSION}</string>
<key>CFBundleName</key>
<string>Audacity</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${AUDACITY_INFO_VERSION}</string>
<key>CFBundleSignature</key>
<string>auDy</string>
<key>CFBundleVersion</key>
<string>${AUDACITY_INFO_VERSION}</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.music</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSRequiresAquaSystemAppearance</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>Audacity version ${AUDACITY_INFO_VERSION}</string>
<key>NSMicrophoneUsageDescription</key>
<string>Audacity requires access to the microphone only if you intend to record from it.</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

4190
cmake-proxies/cmake-modules/cotire.cmake
File diff suppressed because it is too large
View File

47
cmake-proxies/expat/CMakeLists.txt

@ -0,0 +1,47 @@
add_library( ${TARGET} STATIC )
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/lib/xmlparse.c
${TARGET_ROOT}/lib/xmlrole.c
${TARGET_ROOT}/lib/xmltok.c
${TARGET_ROOT}/lib/xmltok_impl.c
${TARGET_ROOT}/lib/xmltok_ns.c
)
list( APPEND INCLUDES
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/private
PUBLIC
${TARGET_ROOT}/lib
)
list( APPEND DEFINES
PRIVATE
HAVE_EXPAT_CONFIG_H
)
check_symbol_exists( "getpagesize" "unistd.h" HAVE_GETPAGESIZE )
check_symbol_exists( "bcopy" "strings.h" HAVE_BCOPY )
check_symbol_exists( "memmove" "string.h" HAVE_MEMMOVE )
if( WORDS_BIGENDIAN )
set( BYTEORDER 4321 )
else( WORDS_BIGENDIAN )
set( BYTEORDER 1234 )
endif()
set( XML_DTD OFF )
set( XML_NS OFF )
configure_file( ${TARGET_ROOT}/expat_config.h.cmake private/expat_config.h )
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_features( ${TARGET} PRIVATE ${FEATURES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

106
cmake-proxies/lame/CMakeLists.txt

@ -1,20 +1,96 @@
#directory cmake-proxies/lame
#UNUSED
set( TARGET lame )
set( TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET} )
project( ${TARGET} )
set( SOURCES
${TARGET_SOURCE}/lib/xmlparse.c
#${LIB_SRC_DIRECTORY}FileDialog/gtk/FileDialogPrivate.cpp #not on windows.
#${LIB_SRC_DIRECTORY}${TARGET}/win/FileDialogPrivate.cpp
add_library( ${TARGET} STATIC )
list( APPEND SOURCES
PRIVATE
# libmp3lame
${TARGET_ROOT}/../libmp3lame/bitstream.c
${TARGET_ROOT}/../libmp3lame/encoder.c
${TARGET_ROOT}/../libmp3lame/fft.c
${TARGET_ROOT}/../libmp3lame/gain_analysis.c
${TARGET_ROOT}/../libmp3lame/id3tag.c
${TARGET_ROOT}/../libmp3lame/lame.c
${TARGET_ROOT}/../libmp3lame/mpglib_interface.c
${TARGET_ROOT}/../libmp3lame/newmdct.c
${TARGET_ROOT}/../libmp3lame/presets.c
${TARGET_ROOT}/../libmp3lame/psymodel.c
${TARGET_ROOT}/../libmp3lame/quantize.c
${TARGET_ROOT}/../libmp3lame/quantize_pvt.c
${TARGET_ROOT}/../libmp3lame/reservoir.c
${TARGET_ROOT}/../libmp3lame/set_get.c
${TARGET_ROOT}/../libmp3lame/tables.c
${TARGET_ROOT}/../libmp3lame/takehiro.c
${TARGET_ROOT}/../libmp3lame/util.c
${TARGET_ROOT}/../libmp3lame/vbrquantize.c
${TARGET_ROOT}/../libmp3lame/VbrTag.c
${TARGET_ROOT}/../libmp3lame/version.c
${TARGET_ROOT}/../libmp3lame/vector/xmm_quantize_sub.c
# mpglib
${TARGET_ROOT}/../mpglib/common.c
${TARGET_ROOT}/../mpglib/dct64_i386.c
${TARGET_ROOT}/../mpglib/decode_i386.c
${TARGET_ROOT}/../mpglib/interface.c
${TARGET_ROOT}/../mpglib/layer1.c
${TARGET_ROOT}/../mpglib/layer2.c
${TARGET_ROOT}/../mpglib/layer3.c
${TARGET_ROOT}/../mpglib/tabinit.c
)
# This defines the #define on both Windows and Linux.
add_definitions( )
add_library( ${TARGET} MODULE ${SOURCES})
target_include_directories( ${TARGET} PRIVATE
list( APPEND INCLUDES
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/private
${TARGET_ROOT}/../libmp3lame
${TARGET_ROOT}/../mpglib
PUBLIC
${CMAKE_CURRENT_BINARY_DIR}/public
)
list( APPEND DEFINES
PRIVATE
HAVE_CONFIG_H
)
target_link_libraries( ${TARGET} )
set( HAVE_INT8_T SIZEOF_INT8_T )
set( HAVE_INT16_T SIZEOF_INT16_T )
set( HAVE_INT32_T SIZEOF_INT32_T )
set( HAVE_INT64_T SIZEOF_INT64_T )
set( HAVE_UINT16_T SIZEOF_UINT16_T )
set( HAVE_UINT32_T SIZEOF_UINT32_T )
set( HAVE_UINT64_T SIZEOF_UINT64_T )
if( SIZEOF_SHORT EQUAL 4 )
set( A_INT32_T int )
elseif( SIZEOF_INT EQUAL 4 )
set( A_INT32_T int )
elseif( SIZEOF_LONG EQUAL 4 )
set( A_INT32_T long )
endif()
if( SIZEOF_INT EQUAL 8 )
set( A_INT64_T int )
elseif( SIZEOF_LONG EQUAL 8 )
set( A_INT64_T long )
elseif( SIZEOF_LONG_LONG EQUAL 8 )
set( A_INT64_T long long )
endif()
set( DECODE_ON_THE_FLY 1 )
set( HAVE_MPGLIB 1 )
set( TAKEHIRO_IEEE754_HACK 1 )
set( USE_FAST_LOG 1 )
if( ${CMakeDetermineASM_NASMCompiler} )
set( HAVE_NASM 1 )
endif()
configure_file( config.h.in private/config.h )
configure_file( lame.h.in public/lame/lame.h )
#organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_features( ${TARGET} PRIVATE ${FEATURES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

371
cmake-proxies/lame/config.h.in

@ -0,0 +1,371 @@
/* config.h.in. Generated from configure.in by autoheader. */
#ifndef LAME_CONFIG_H
#define LAME_CONFIG_H 1
/* debug define */
#cmakedefine ABORTFP 1
/* Define if building universal (internal helper macro) */
#cmakedefine AC_APPLE_UNIVERSAL_BUILD 1
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#cmakedefine CRAY_STACKSEG_END @CRAY_STACKSEG_END@
/* Define to 1 if using `alloca.c'. */
#cmakedefine C_ALLOCA 1
/* alot of debug output */
#cmakedefine DEBUG 1
/* allow to compute a more accurate replaygain value */
#cmakedefine DECODE_ON_THE_FLY 1
/* double is faster than float on Alpha */
#cmakedefine FLOAT @FLOAT@
/* Define to 1 if you have `alloca', as a function or macro. */
#cmakedefine HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#cmakedefine HAVE_ALLOCA_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
/* we link against libefence */
#cmakedefine HAVE_EFENCE 1
/* Define to 1 if you have the <errno.h> header file. */
#cmakedefine HAVE_ERRNO_H 1
/* Define to 1 if you have the <fcntl.h> header file. */
#cmakedefine HAVE_FCNTL_H 1
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY 1
/* Define if you have the iconv() function and it works. */
#cmakedefine HAVE_ICONV 1
/* add ieee754_float32_t type */
#cmakedefine HAVE_IEEE754_FLOAT32_T 1
#ifndef HAVE_IEEE754_FLOAT32_T
typedef float ieee754_float32_t;
#endif
/* add ieee754_float64_t type */
#cmakedefine HAVE_IEEE754_FLOAT64_T 1
#ifndef HAVE_IEEE754_FLOAT64_T
typedef double ieee754_float64_t;
#endif
/* system has 80 bit floats */
#cmakedefine HAVE_IEEE854_FLOAT80 1
/* add ieee854_float80_t type */
#cmakedefine HAVE_IEEE854_FLOAT80_T 1
#ifndef HAVE_IEEE854_FLOAT80_T
typedef long double ieee854_float80_t;
#endif
/* add int16_t type */
#cmakedefine HAVE_INT16_T 1
#ifndef HAVE_INT16_T
typedef short int16_t;
#endif
/* add int32_t type */
#cmakedefine HAVE_INT32_T 1
#ifndef HAVE_INT32_T
#define A_INT32_T @A_INT32_T@
typedef A_INT32_T int32_t;
#endif
/* add int64_t type */
#cmakedefine HAVE_INT64_T 1
#ifndef HAVE_INT64_T
#define A_INT64_T @A_INT64_T@
typedef A_INT64_T int64_t;
#endif
/* add int8_t type */
#cmakedefine HAVE_INT8_T 1
#ifndef HAVE_INT8_T
typedef char int8_t;
#endif
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the <limits.h> header file. */
#cmakedefine HAVE_LIMITS_H 1
/* Define to 1 if you have the <linux/soundcard.h> header file. */
#cmakedefine HAVE_LINUX_SOUNDCARD_H 1
/* Define to 1 if the type `long double' works and has more range or precision
than `double'. */
#cmakedefine HAVE_LONG_DOUBLE 1
/* Define to 1 if the type `long double' works and has more range or precision
than `double'. */
#cmakedefine HAVE_LONG_DOUBLE_WIDER 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* build with mpglib support */
#cmakedefine HAVE_MPGLIB 1
/* have nasm */
#cmakedefine HAVE_NASM 1
/* Define to 1 if you have the <ncurses/termcap.h> header file. */
#cmakedefine HAVE_NCURSES_TERMCAP_H 1
/* Define to 1 if you have the `socket' function. */
#cmakedefine HAVE_SOCKET 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the `strtol' function. */
#cmakedefine HAVE_STRTOL 1
/* Define to 1 if you have the <sys/soundcard.h> header file. */
#cmakedefine HAVE_SYS_SOUNDCARD_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* have termcap */
#cmakedefine HAVE_TERMCAP 1
/* Define to 1 if you have the <termcap.h> header file. */
#cmakedefine HAVE_TERMCAP_H 1
/* add uint16_t type */
#cmakedefine HAVE_UINT16_T 1
#ifndef HAVE_UINT16_T
typedef unsigned short uint16_t;
#endif
/* add uint32_t type */
#cmakedefine HAVE_UINT32_T 1
#ifndef HAVE_UINT32_T
#define A_UINT32_T @A_UINT32_T@
typedef A_UINT32_T uint32_t;
#endif
/* add uint64_t type */
#cmakedefine HAVE_UINT64_T 1
#ifndef HAVE_UINT64_T
#define A_UINT64_T @A_UINT64_T@
typedef A_UINT64_T uint64_t;
#endif
/* add uint8_t type */
#cmakedefine HAVE_UINT8_T 1
#ifndef HAVE_UINT8_T
typedef unsigned char uint8_t;
#endif
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Define if SSE intrinsics work. */
#cmakedefine HAVE_XMMINTRIN_H 1
/* Define as const if the declaration of iconv() needs const. */
#define ICONV_CONST @ICONV_CONST@
/* requested by Frank, seems to be temporary needed for a smooth transition */
#cmakedefine LAME_LIBRARY_BUILD 1
/* set to 1 if you have libsndfile */
#cmakedefine LIBSNDFILE 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#cmakedefine LT_OBJDIR @LT_OBJDIR@
/* use MMX version of choose_table */
#cmakedefine MMX_choose_table 1
/* build without hooks for analyzer */
#cmakedefine NOANALYSIS 1
/* Name of package */
#cmakedefine PACKAGE "@PACKAGE@"
/* Define to the address where bug reports for this package should be sent. */
#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
/* Define to the full name of this package. */
#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@"
/* Define to the full name and version of this package. */
#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@"
/* Define to the one symbol short name of this package. */
#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@"
/* Define to the home page for this package. */
#cmakedefine PACKAGE_URL "@PACKAGE_URL@"
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE @SIZEOF_DOUBLE@
/* The size of `float', as computed by sizeof. */
#define SIZEOF_FLOAT @SIZEOF_FLOAT@
/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT @SIZEOF_INT@
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG @SIZEOF_LONG@
/* The size of `long double', as computed by sizeof. */
#define SIZEOF_LONG_DOUBLE @SIZEOF_LONG_DOUBLE@
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT @SIZEOF_SHORT@
/* The size of `unsigned int', as computed by sizeof. */
#define SIZEOF_UNSIGNED_INT @SIZEOF_UNSIGNED_INT@
/* The size of `unsigned long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG @SIZEOF_UNSIGNED_LONG@
/* The size of `unsigned long long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG_LONG @SIZEOF_UNSIGNED_LONG_LONG@
/* The size of `unsigned short', as computed by sizeof. */
#define SIZEOF_UNSIGNED_SHORT @SIZEOF_UNSIGNED_SHORT@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* IEEE754 compatible machine */
#cmakedefine TAKEHIRO_IEEE754_HACK 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#cmakedefine TIME_WITH_SYS_TIME 1
/* faster log implementation with less but enough precission */
#cmakedefine USE_FAST_LOG 1
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#cmakedefine _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
#cmakedefine _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
#cmakedefine _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
#cmakedefine _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
#cmakedefine __EXTENSIONS__ 1
#endif
/* Version number of package */
#cmakedefine VERSION "@VERSION@"
/* Define if using the dmalloc debugging malloc package */
#cmakedefine WITH_DMALLOC 1
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#cmakedefine WORDS_BIGENDIAN 1
# endif
#endif
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
/* Define for large files, on AIX-style hosts. */
#cmakedefine _LARGE_FILES @_LARGE_FILES@
/* Define to 1 if on MINIX. */
#cmakedefine _MINIX 1
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#cmakedefine _POSIX_1_SOURCE @_POSIX_1_SOURCE@
/* Define to 1 if you need to in order for `stat' and other things to work. */
#cmakedefine _POSIX_SOURCE 1
/* we're on DEC Alpha */
#cmakedefine __DECALPHA__ 1
/* work around a glibc bug */
#cmakedefine __NO_MATH_INLINES 1
/* Define to empty if `const' does not conform to ANSI C. */
#cmakedefine const @const@
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#cmakedefine inline @inline@
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
#cmakedefine size_t @size_t@
#endif /* LAME_CONFIG_H */

1342
cmake-proxies/lame/lame.h.in
File diff suppressed because it is too large
View File

26
cmake-proxies/lib-widget-extra/CMakeLists.txt

@ -0,0 +1,26 @@
add_library( ${TARGET} STATIC )
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/NonGuiThread.cpp
)
list( APPEND INCLUDES
PUBLIC
${TARGET_ROOT}
)
list( APPEND LIBRARIES
PRIVATE
wxwidgets
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_features( ${TARGET} PRIVATE ${FEATURES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} PRIVATE ${LIBRARIES} )

96
cmake-proxies/lib-widget-extra/config.h.in

@ -0,0 +1,96 @@
/* libtwolame/config.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
#cmakedefine AC_APPLE_UNIVERSAL_BUILD 1
/* Define to 1 if you have the <assert.h> header file. */
#cmakedefine HAVE_ASSERT_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine HAVE_LIBM 1
/* Define to 1 if you have the `mx' library (-lmx). */
#cmakedefine HAVE_LIBMX 1
/* Define to 1 if you have the <malloc.h> header file. */
#cmakedefine HAVE_MALLOC_H 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#cmakedefine LT_OBJDIR "@LT_OBJDIR@"
/* Name of package */
#cmakedefine PACKAGE "@PACKAGE@"
/* Define to the address where bug reports for this package should be sent. */
#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
/* Define to the full name of this package. */
#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@"
/* Define to the full name and version of this package. */
#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@"
/* Define to the one symbol short name of this package. */
#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@"
/* Define to the home page for this package. */
#cmakedefine PACKAGE_URL "@PACKAGE_URL@"
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
/* The size of `float', as computed by sizeof. */
#define SIZEOF_FLOAT @SIZEOF_FLOAT@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT @SIZEOF_SHORT@
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* Version number of package */
#cmakedefine VERSION "@VERSION@"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@
/* Define to empty if `const' does not conform to ANSI C. */
#cmakedefine const @const@
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#cmakedefine inline @inline@
#endif

316
cmake-proxies/libflac/CMakeLists.txt

@ -1,222 +1,98 @@
#directory cmake-proxies/libflac
cmake_minimum_required(VERSION 3.12)
set(TARGET libflac)
set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET})
project(${TARGET} VERSION 1.3.1)
add_library( ${TARGET} STATIC )
add_library( ${TARGET}++ STATIC )
list( APPEND SOURCES
PRIVATE
# libflac
${TARGET_ROOT}/src/libFLAC/bitmath.c
${TARGET_ROOT}/src/libFLAC/bitreader.c
${TARGET_ROOT}/src/libFLAC/bitwriter.c
${TARGET_ROOT}/src/libFLAC/cpu.c
${TARGET_ROOT}/src/libFLAC/crc.c
${TARGET_ROOT}/src/libFLAC/fixed.c
${TARGET_ROOT}/src/libFLAC/fixed_intrin_sse2.c
${TARGET_ROOT}/src/libFLAC/fixed_intrin_ssse3.c
${TARGET_ROOT}/src/libFLAC/float.c
${TARGET_ROOT}/src/libFLAC/format.c
${TARGET_ROOT}/src/libFLAC/lpc.c
${TARGET_ROOT}/src/libFLAC/lpc_intrin_sse.c
${TARGET_ROOT}/src/libFLAC/lpc_intrin_sse2.c
${TARGET_ROOT}/src/libFLAC/lpc_intrin_sse41.c
${TARGET_ROOT}/src/libFLAC/lpc_intrin_avx2.c
${TARGET_ROOT}/src/libFLAC/md5.c
${TARGET_ROOT}/src/libFLAC/memory.c
${TARGET_ROOT}/src/libFLAC/metadata_iterators.c
${TARGET_ROOT}/src/libFLAC/metadata_object.c
${TARGET_ROOT}/src/libFLAC/stream_decoder.c
${TARGET_ROOT}/src/libFLAC/stream_encoder.c
${TARGET_ROOT}/src/libFLAC/stream_encoder_intrin_sse2.c
${TARGET_ROOT}/src/libFLAC/stream_encoder_intrin_ssse3.c
${TARGET_ROOT}/src/libFLAC/stream_encoder_intrin_avx2.c
${TARGET_ROOT}/src/libFLAC/stream_encoder_framing.c
${TARGET_ROOT}/src/libFLAC/window.c
${TARGET_ROOT}/src/libFLAC/ogg_decoder_aspect.c
${TARGET_ROOT}/src/libFLAC/ogg_encoder_aspect.c
${TARGET_ROOT}/src/libFLAC/ogg_helper.c
${TAR