Suppress warnings in third-party code (#7319)
This commit is contained in:
30
src/3rdparty/CMakeLists.txt
vendored
30
src/3rdparty/CMakeLists.txt
vendored
@@ -1,8 +1,13 @@
|
||||
set_directory_properties(PROPERTIES SYSTEM TRUE)
|
||||
|
||||
if(LMMS_BUILD_LINUX AND LMMS_HAVE_VST)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
add_subdirectory(qt5-x11embed)
|
||||
ENDIF()
|
||||
|
||||
add_library(jack_headers INTERFACE)
|
||||
target_include_directories(jack_headers INTERFACE jack2/common)
|
||||
|
||||
ADD_SUBDIRECTORY(hiir)
|
||||
ADD_SUBDIRECTORY(weakjack)
|
||||
|
||||
@@ -12,13 +17,22 @@ if(MINGW)
|
||||
set(LMMS_USE_MINGW_STD_THREADS ON PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# The lockless ring buffer library is compiled as part of the core
|
||||
SET(RINGBUFFER_DIR "${CMAKE_SOURCE_DIR}/src/3rdparty/ringbuffer/")
|
||||
SET(RINGBUFFER_DIR ${RINGBUFFER_DIR} PARENT_SCOPE)
|
||||
# The lockless ring buffer library is linked as part of the core
|
||||
add_library(ringbuffer OBJECT
|
||||
ringbuffer/src/lib/ringbuffer.cpp
|
||||
)
|
||||
target_compile_features(ringbuffer PUBLIC cxx_std_17)
|
||||
target_include_directories(ringbuffer PUBLIC
|
||||
ringbuffer/include
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
)
|
||||
# Create a dummy ringbuffer_export.h, since ringbuffer is not compiled as a library
|
||||
FILE(WRITE ${CMAKE_BINARY_DIR}/src/ringbuffer_export.h
|
||||
"#include \"${CMAKE_BINARY_DIR}/src/lmms_export.h\"\n
|
||||
#define RINGBUFFER_EXPORT LMMS_EXPORT")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ringbuffer_export.h.in" [[
|
||||
#include "${CMAKE_BINARY_DIR}/src/lmms_export.h"
|
||||
#define RINGBUFFER_EXPORT LMMS_EXPORT
|
||||
]])
|
||||
configure_file("${CMAKE_CURRENT_BINARY_DIR}/ringbuffer_export.h.in" ringbuffer_export.h)
|
||||
target_compile_definitions(ringbuffer PRIVATE lmmsobjs_EXPORTS)
|
||||
# Enable MLOCK support for ringbuffer if available
|
||||
INCLUDE(CheckIncludeFiles)
|
||||
CHECK_INCLUDE_FILES(sys/mman.h HAVE_SYS_MMAN)
|
||||
@@ -28,5 +42,5 @@ ELSE()
|
||||
SET(USE_MLOCK OFF)
|
||||
ENDIF()
|
||||
# Generate ringbuffer configuration headers
|
||||
CONFIGURE_FILE(${RINGBUFFER_DIR}/src/ringbuffer-config.h.in ${CMAKE_BINARY_DIR}/src/ringbuffer-config.h)
|
||||
CONFIGURE_FILE(${RINGBUFFER_DIR}/src/ringbuffer-version.h.in ${CMAKE_BINARY_DIR}/src/ringbuffer-version.h)
|
||||
configure_file(ringbuffer/src/ringbuffer-config.h.in ringbuffer-config.h)
|
||||
configure_file(ringbuffer/src/ringbuffer-version.h.in ringbuffer-version.h)
|
||||
|
||||
22
src/3rdparty/weakjack/CMakeLists.txt
vendored
22
src/3rdparty/weakjack/CMakeLists.txt
vendored
@@ -1,12 +1,14 @@
|
||||
# Use weak jack library linking
|
||||
IF(LMMS_HAVE_WEAKJACK)
|
||||
SET(CMAKE_C_FLAGS "-std=c11")
|
||||
|
||||
if(LMMS_HAVE_WEAKJACK)
|
||||
add_library(weakjack STATIC
|
||||
weakjack/weak_libjack.c
|
||||
)
|
||||
target_include_directories(weakjack PUBLIC weakjack)
|
||||
target_link_libraries(weakjack PUBLIC jack_headers ${CMAKE_DL_LIBS})
|
||||
target_compile_features(weakjack PRIVATE c_std_11)
|
||||
# Enable weakjack, disable metadata support
|
||||
ADD_DEFINITIONS(-DUSE_WEAK_JACK=1 -DNO_JACK_METADATA=1)
|
||||
|
||||
# Library stub for AppImages running on systems without jack
|
||||
ADD_LIBRARY(weakjack MODULE weakjack/weak_libjack.c weakjack/weak_libjack.h)
|
||||
TARGET_INCLUDE_DIRECTORIES(weakjack PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/weakjack ${JACK_INCLUDE_DIRS})
|
||||
INSTALL(TARGETS weakjack LIBRARY DESTINATION "${PLUGIN_DIR}/optional")
|
||||
ENDIF()
|
||||
target_compile_definitions(weakjack PUBLIC
|
||||
USE_WEAK_JACK=1
|
||||
NO_JACK_METADATA=1
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -29,7 +29,6 @@ INCLUDE_DIRECTORIES(
|
||||
"${CMAKE_BINARY_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}"
|
||||
"${CMAKE_SOURCE_DIR}/include"
|
||||
"${RINGBUFFER_DIR}/include"
|
||||
)
|
||||
|
||||
IF(WIN32 AND MSVC)
|
||||
@@ -55,39 +54,31 @@ ADD_GEN_QRC(LMMS_RCC_OUT lmms.qrc
|
||||
FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}")
|
||||
FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/${BIN_DIR}" "/${PLUGIN_DIR}")
|
||||
ADD_DEFINITIONS(-DLIB_DIR="${LIB_DIR_RELATIVE}" -DPLUGIN_DIR="${PLUGIN_DIR_RELATIVE}" ${PULSEAUDIO_DEFINITIONS})
|
||||
INCLUDE_DIRECTORIES(
|
||||
include_directories(SYSTEM
|
||||
${JACK_INCLUDE_DIRS}
|
||||
${SNDIO_INCLUDE_DIRS}
|
||||
${FFTW3F_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
IF(NOT LMMS_HAVE_SDL2 AND NOT ("${SDL_INCLUDE_DIR}" STREQUAL ""))
|
||||
INCLUDE_DIRECTORIES("${SDL_INCLUDE_DIR}")
|
||||
ENDIF()
|
||||
|
||||
IF(LMMS_HAVE_WEAKJACK)
|
||||
LIST(APPEND LMMS_SRCS "${WEAKJACK_INCLUDE_DIRS}/weak_libjack.c")
|
||||
LIST(APPEND LMMS_INCLUDES "${WEAKJACK_INCLUDE_DIRS}/weak_libjack.h")
|
||||
INCLUDE_DIRECTORIES("${WEAKJACK_INCLUDE_DIRS}")
|
||||
ADD_DEFINITIONS(-DUSE_WEAK_JACK=1 -DNO_JACK_METADATA=1)
|
||||
include_directories(SYSTEM "${SDL_INCLUDE_DIR}")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT ("${PULSEAUDIO_INCLUDE_DIR}" STREQUAL ""))
|
||||
INCLUDE_DIRECTORIES("${PULSEAUDIO_INCLUDE_DIR}")
|
||||
include_directories(SYSTEM "${PULSEAUDIO_INCLUDE_DIR}")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT ("${LV2_INCLUDE_DIRS}" STREQUAL ""))
|
||||
INCLUDE_DIRECTORIES(${LV2_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${LV2_INCLUDE_DIRS})
|
||||
ENDIF()
|
||||
|
||||
IF(NOT ("${LILV_INCLUDE_DIRS}" STREQUAL ""))
|
||||
INCLUDE_DIRECTORIES(${LILV_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${LILV_INCLUDE_DIRS})
|
||||
ENDIF()
|
||||
|
||||
IF(NOT ("${SUIL_INCLUDE_DIRS}" STREQUAL ""))
|
||||
INCLUDE_DIRECTORIES(${SUIL_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${SUIL_INCLUDE_DIRS})
|
||||
ENDIF()
|
||||
LIST(APPEND LMMS_SRCS "${RINGBUFFER_DIR}/src/lib/ringbuffer.cpp")
|
||||
|
||||
# Use libraries in non-standard directories (e.g., another version of Qt)
|
||||
IF(LMMS_BUILD_LINUX)
|
||||
@@ -108,23 +99,20 @@ GENERATE_EXPORT_HEADER(lmmsobjs
|
||||
|
||||
ADD_EXECUTABLE(lmms
|
||||
core/main.cpp
|
||||
$<TARGET_OBJECTS:lmmsobjs>
|
||||
"${WINRC}"
|
||||
)
|
||||
TARGET_INCLUDE_DIRECTORIES(lmms
|
||||
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
target_static_libraries(lmms PUBLIC lmmsobjs)
|
||||
|
||||
# CMake doesn't define target_EXPORTS for OBJECT libraries.
|
||||
# See the documentation of DEFINE_SYMBOL for details.
|
||||
# Also add LMMS_STATIC_DEFINE for targets linking against it.
|
||||
TARGET_COMPILE_DEFINITIONS(lmmsobjs
|
||||
PRIVATE -Dlmmsobjs_EXPORTS
|
||||
INTERFACE -DLMMS_STATIC_DEFINE
|
||||
)
|
||||
TARGET_COMPILE_DEFINITIONS(lmms
|
||||
PRIVATE $<TARGET_PROPERTY:lmmsobjs,INTERFACE_COMPILE_DEFINITIONS>
|
||||
)
|
||||
target_static_definitions(lmmsobjs LMMS_STATIC_DEFINE)
|
||||
|
||||
# Set Visual Studio startup project to lmms
|
||||
# https://stackoverflow.com/a/37994396/8166701
|
||||
@@ -189,21 +177,10 @@ SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS}
|
||||
${EXTRA_LIBRARIES}
|
||||
)
|
||||
|
||||
# Expose required libs for tests binary
|
||||
SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} PARENT_SCOPE)
|
||||
|
||||
TARGET_LINK_LIBRARIES(lmms
|
||||
target_link_libraries(lmmsobjs
|
||||
${LMMS_REQUIRED_LIBS}
|
||||
)
|
||||
|
||||
FOREACH(LIB ${LMMS_REQUIRED_LIBS})
|
||||
IF(TARGET ${LIB})
|
||||
GET_TARGET_PROPERTY(INCLUDE_DIRS ${LIB} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
IF(INCLUDE_DIRS)
|
||||
TARGET_INCLUDE_DIRECTORIES(lmmsobjs PRIVATE ${INCLUDE_DIRS})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
target_static_libraries(lmmsobjs ringbuffer)
|
||||
|
||||
set_target_properties(lmms PROPERTIES
|
||||
ENABLE_EXPORTS ON
|
||||
|
||||
Reference in New Issue
Block a user