1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-18 08:31:13 +02: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:
Leland Lucius
2020-02-03 00:39:43 -06:00
parent 3b77af5dfc
commit 6217351a12
57 changed files with 7958 additions and 6106 deletions

View File

@@ -1,96 +1,89 @@
#directory cmake-proxies/libogg
set(TARGET libogg)
set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET})
project(${TARGET})
add_library( ${TARGET} STATIC )
include(CheckIncludeFile)
include(CheckTypeSize)
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/src/bitwise.c
${TARGET_ROOT}/src/framing.c
)
check_include_file("inttypes.h" INCLUDE_INTTYPES_H)
check_include_file("stdint.h" INCLUDE_STDINT_H)
check_include_file("sys/types.h" INCLUDE_SYS_TYPES_H)
list( APPEND INCLUDES
PUBLIC
${CMAKE_CURRENT_BINARY_DIR}/public
${TARGET_ROOT}/include
)
check_type_size("int16_t" INT16_SIZE LANGUAGE C)
check_type_size("uint16_t" UINT16_SIZE LANGUAGE C)
check_type_size("u_int16_t" U_INT16_SIZE LANGUAGE C)
check_type_size("int32_t" INT32_SIZE LANGUAGE C)
check_type_size("uint32_t" UINT32_SIZE LANGUAGE C)
check_type_size("u_int32_t" U_INT32_SIZE LANGUAGE C)
check_type_size("int64_t" INT64_SIZE LANGUAGE C)
check_type_size("short" SHORT_SIZE LANGUAGE C)
check_type_size("int" INT_SIZE LANGUAGE C)
check_type_size("long" LONG_SIZE LANGUAGE C)
check_type_size("long long" LONG_LONG_SIZE LANGUAGE C)
if(INT16_SIZE EQUAL 2)
set(SIZE16 "int16_t")
elseif(SHORT_SIZE EQUAL 2)
set(SIZE16 "short")
elseif(INT_SIZE EQUAL 2)
set(SIZE16 "int")
if( SIZEOF_INT16 EQUAL 2 )
set( SIZE16 "int16_t" )
elseif( SIZEOF_SHORT EQUAL 2 )
set( SIZE16 "short" )
elseif( SIZEOF_INT EQUAL 2 )
set( SIZE16 "int" )
else()
message(FATAL_ERROR "No 16 bit type found on this platform!")
message( FATAL_ERROR "No 16 bit type found on this platform!" )
endif()
if(UINT16_SIZE EQUAL 2)
set(USIZE16 "uint16_t")
elseif(SHORT_SIZE EQUAL 2)
set(USIZE16 "unsigned short")
elseif(INT_SIZE EQUAL 2)
set(USIZE16 "unsigned int")
elseif(U_INT_SIZE EQUAL 2)
set(USIZE16 "u_int16_t")
if( SIZEOF_UINT16 EQUAL 2 )
set( USIZE16 "uint16_t" )
elseif( SIZEOF_SHORT EQUAL 2 )
set( USIZE16 "unsigned short" )
elseif( SIZEOF_INT EQUAL 2 )
set( USIZE16 "unsigned int" )
elseif( SIZEOF_U_INT EQUAL 2 )
set( USIZE16 "u_int16_t" )
else()
message(FATAL_ERROR "No unsigned 16 bit type found on this platform!")
message( FATAL_ERROR "No unsigned 16 bit type found on this platform!" )
endif()
if(INT32_SIZE EQUAL 4)
set(SIZE32 "int32_t")
elseif(SHORT_SIZE EQUAL 4)
set(SIZE32 "short")
elseif(INT_SIZE EQUAL 4)
set(SIZE32 "int")
elseif(LONG_SIZE EQUAL 4)
set(SIZE16 "long")
if( SIZEOF_INT32 EQUAL 4 )
set( SIZE32 "int32_t" )
elseif( SIZEOF_SHORT EQUAL 4 )
set( SIZE32 "short" )
elseif( SIZEOF_INT EQUAL 4 )
set( SIZE32 "int" )
elseif( SIZEOF_LONG EQUAL 4 )
set( SIZE16 "long" )
else()
message(FATAL_ERROR "No 32 bit type found on this platform!")
message( FATAL_ERROR "No 32 bit type found on this platform!" )
endif()
if(UINT32_SIZE EQUAL 4)
set(USIZE32 "uint32_t")
elseif(SHORT_SIZE EQUAL 4)
set(USIZE32 "unsigned short")
elseif(INT_SIZE EQUAL 4)
set(USIZE32 "unsigned int")
elseif(LONG_SIZE EQUAL 4)
set(USIZE32 "unsigned long")
elseif(U_INT_SIZE EQUAL 4)
set(USIZE32 "u_int32_t")
if( SIZEOF_UINT32 EQUAL 4 )
set( USIZE32 "uint32_t" )
elseif( SIZEOF_SHORT EQUAL 4 )
set( USIZE32 "unsigned short" )
elseif( SIZEOF_INT EQUAL 4 )
set( USIZE32 "unsigned int" )
elseif( SIZEOF_LONG EQUAL 4 )
set( USIZE32 "unsigned long" )
elseif( SIZEOF_U_INT EQUAL 4 )
set( USIZE32 "u_int32_t" )
else()
message(FATAL_ERROR "No unsigned 32 bit type found on this platform!")
message( FATAL_ERROR "No unsigned 32 bit type found on this platform!" )
endif()
if(INT64_SIZE EQUAL 8)
set(SIZE64 "int64_t")
elseif(INT_SIZE EQUAL 8)
set(SIZE64 "int")
elseif(LONG_SIZE EQUAL 8)
set(SIZE64 "long")
elseif(LONG_LONG_SIZE EQUAL 8)
set(SIZE64 "long long")
if( SIZEOF_INT64 EQUAL 8 )
set( SIZE64 "int64_t" )
elseif( SIZEOF_INT EQUAL 8 )
set( SIZE64 "int" )
elseif( SIZEOF_LONG EQUAL 8 )
set( SIZE64 "long" )
elseif( SIZEOF_LONG_LONG EQUAL 8 )
set( SIZE64 "long long" )
else()
message(FATAL_ERROR "No 64 bit type found on this platform!")
message( FATAL_ERROR "No 64 bit type found on this platform!" )
endif()
configure_file(
"${LIB_SRC_DIRECTORY}libogg/include/ogg/config_types.h.in"
"ogg/config_types.h")
set( INCLUDE_INTTYPES_H ${HAVE_INTTYPES_H} )
set( INCLUDE_STDINT_H ${HAVE_STDINT_H} )
set( INCLUDE_SYS_TYPES_H ${HAVE_SYS_TYPES_H} )
add_library(${TARGET}
"${LIB_SRC_DIRECTORY}libogg/src/bitwise.c"
"${LIB_SRC_DIRECTORY}libogg/src/framing.c")
configure_file( config_types.h.in public/ogg/config_types.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} )
target_include_directories(${TARGET} PUBLIC
"${TARGET_SOURCE}/include"
"${CMAKE_CURRENT_BINARY_DIR}")