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:
@@ -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}")
|
||||
|
Reference in New Issue
Block a user