mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-27 15:53:49 +01:00
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)
This commit is contained in:
@@ -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
|
||||
)
|
||||
# This defines the #define on both Windows and Linux.
|
||||
add_definitions( )
|
||||
add_library( ${TARGET} MODULE ${SOURCES})
|
||||
add_library( ${TARGET} STATIC )
|
||||
|
||||
target_include_directories( ${TARGET} PRIVATE
|
||||
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
|
||||
)
|
||||
|
||||
target_link_libraries( ${TARGET} )
|
||||
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
|
||||
)
|
||||
|
||||
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} )
|
||||
|
||||
|
||||
Reference in New Issue
Block a user