1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-07 07:12:34 +02:00
Carlo Bramini 3d38ddf6a2
[CMAKE] Portmidi: add missing Unix files in Cygwin (#442)
When doing the final link of Audacity executable on Cygwin, many errors like this one were printed on the console:

ld: ../lib/audacity/libportmidi.a(portmidi.c.o):portmidi.c:(.text+0x3f): undefined reference to `pm_alloc'

This happened because some files were missing since Cygwin name was not included together with other unix platforms.
2020-03-03 17:06:42 -06:00

88 lines
2.0 KiB
CMake

add_library( ${TARGET} STATIC )
def_vars()
list( APPEND SOURCES
PRIVATE
${TARGET_ROOT}/pm_common/portmidi.c
${TARGET_ROOT}/pm_common/pmutil.c
${TARGET_ROOT}/porttime/porttime.c
$<$<PLATFORM_ID:Windows>:
${TARGET_ROOT}/pm_win/pmwin.c
${TARGET_ROOT}/pm_win/pmwinmm.c
${TARGET_ROOT}/porttime/ptwinmm.c
>
$<$<PLATFORM_ID:Darwin>:
${TARGET_ROOT}/pm_mac/finddefault.c
${TARGET_ROOT}/pm_mac/pmmac.c
${TARGET_ROOT}/pm_mac/pmmacosxcm.c
${TARGET_ROOT}/pm_mac/readbinaryplist.c
${TARGET_ROOT}/porttime/ptmacosx_mach.c
>
$<$<PLATFORM_ID:Linux,FreeBSD,CYGWIN>:
${TARGET_ROOT}/pm_linux/finddefault.c
${TARGET_ROOT}/pm_linux/pmlinux.c
${TARGET_ROOT}/porttime/ptlinux.c
>
$<$<BOOL:${ALSA_FOUND}>:
${TARGET_ROOT}/pm_linux/pmlinuxalsa.c
>
)
list( APPEND INCLUDES
PRIVATE
${TARGET_ROOT}/pm_common
${TARGET_ROOT}/porttime
$<$<PLATFORM_ID:Windows>:
${TARGET_ROOT}/pm_win
>
$<$<PLATFORM_ID:Darwin>:
${TARGET_ROOT}/pm_mac
>
$<$<PLATFORM_ID:Linux,FreeBSD>:
${TARGET_ROOT}/pm_linux
>
)
list( APPEND DEFINES
PRIVATE
$<$<BOOL:${ALSA_FOUND}>:
PMALSA=1
>
)
list( APPEND OPTIONS
PRIVATE
$<$<C_COMPILER_ID:AppleClang,Clang,GNU>:
-Wno-pointer-to-int-cast
-Wno-int-to-pointer-cast
-Wno-implicit-function-declaration
>
)
list( APPEND LIBRARIES
PUBLIC
$<$<PLATFORM_ID:Darwin>:
"-framework CoreMIDI"
>
$<$<PLATFORM_ID:FreeBSD>:
compat
>
)
organize_source( "${TARGET_ROOT}" "" "${SOURCES}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_compile_options( ${TARGET} PRIVATE ${OPTIONS} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )
target_link_libraries( ${TARGET} INTERFACE ${LIBRARIES} )