From 43fbcca9cb341e7f759faf9070278fcc20b988f7 Mon Sep 17 00:00:00 2001 From: Rossmaxx <74815851+Rossmaxx@users.noreply.github.com> Date: Sun, 2 Jun 2024 15:22:51 +0530 Subject: [PATCH] Modernize compiler and linker flags (#7255) --- CMakeLists.txt | 2 +- cmake/modules/BuildPlugin.cmake | 2 +- plugins/GigPlayer/CMakeLists.txt | 6 ++-- plugins/LadspaEffect/caps/CMakeLists.txt | 9 ------ plugins/LadspaEffect/swh/CMakeLists.txt | 28 +++++++++---------- .../VstBase/RemoteVstPlugin/CMakeLists.txt | 5 +--- plugins/ZynAddSubFx/CMakeLists.txt | 4 +-- 7 files changed, 21 insertions(+), 35 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1da10775b..fbd9cdfcf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +CMAKE_MINIMUM_REQUIRED(VERSION 3.13) # Set the given policy to NEW. If it does not exist, it will not be set. If it # is already set to NEW (most likely due to predating the minimum required CMake diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index aaccd3c4b..69af41ecb 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -60,7 +60,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) IF(LMMS_BUILD_APPLE) IF ("${PLUGIN_LINK}" STREQUAL "SHARED") - SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") + TARGET_LINK_OPTIONS(${PLUGIN_NAME} PRIVATE -undefined dynamic_lookup) ENDIF() ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) diff --git a/plugins/GigPlayer/CMakeLists.txt b/plugins/GigPlayer/CMakeLists.txt index 6ec8fe169..92c80fedc 100644 --- a/plugins/GigPlayer/CMakeLists.txt +++ b/plugins/GigPlayer/CMakeLists.txt @@ -4,13 +4,11 @@ if(LMMS_HAVE_GIG) SET(CMAKE_AUTOUIC ON) # Required for not crashing loading files with libgig - SET(GCC_COVERAGE_COMPILE_FLAGS "-fexceptions") - add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) + add_compile_options("-fexceptions") # disable deprecated check for mingw-x-libgig if(LMMS_BUILD_WIN32) - SET(GCC_GIG_COMPILE_FLAGS "-Wno-deprecated") - add_definitions(${GCC_GIG_COMPILE_FLAGS}) + add_compile_options("-Wno-deprecated") endif(LMMS_BUILD_WIN32) link_directories(${GIG_LIBRARY_DIRS}) diff --git a/plugins/LadspaEffect/caps/CMakeLists.txt b/plugins/LadspaEffect/caps/CMakeLists.txt index f82fa5ab0..ea2c1b7e9 100644 --- a/plugins/LadspaEffect/caps/CMakeLists.txt +++ b/plugins/LadspaEffect/caps/CMakeLists.txt @@ -27,12 +27,3 @@ IF(LMMS_BUILD_WIN32) COMMAND_EXPAND_LISTS ) ENDIF(LMMS_BUILD_WIN32) - -IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) - SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") -ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) - -IF(LMMS_BUILD_LINUX) - SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS}") -ENDIF(LMMS_BUILD_LINUX) - diff --git a/plugins/LadspaEffect/swh/CMakeLists.txt b/plugins/LadspaEffect/swh/CMakeLists.txt index 3847429d3..c71572bd2 100644 --- a/plugins/LadspaEffect/swh/CMakeLists.txt +++ b/plugins/LadspaEffect/swh/CMakeLists.txt @@ -5,16 +5,17 @@ FILE(WRITE ladspa/config.h "") IF(LMMS_BUILD_WIN32) SET(PIC_FLAGS "") ELSE() - SET(PIC_FLAGS "-fPIC -DPIC") + SET(PIC_FLAGS -fPIC -DPIC) ENDIF() # Additional compile flags if(MSVC) - set(COMPILE_FLAGS "${COMPILE_FLAGS} /wd4244 /wd4273 /wd4305") + set(COMPILE_FLAGS ${COMPILE_FLAGS} /wd4244 /wd4273 /wd4305) else() - set(COMPILE_FLAGS "${COMPILE_FLAGS} -O3 -Wall") - set(COMPILE_FLAGS "${COMPILE_FLAGS} -fomit-frame-pointer -funroll-loops -ffast-math -c -fno-strict-aliasing") - set(COMPILE_FLAGS "${COMPILE_FLAGS} ${PIC_FLAGS}") + set(COMPILE_FLAGS ${COMPILE_FLAGS} -O3 -Wall -c + -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing + ${PIC_FLAGS} + ) endif() # Loop over every XML file @@ -61,8 +62,7 @@ FOREACH(_item ${XML_SOURCES}) endif(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES PREFIX "") - SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}") - SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS}") + target_compile_options("${_plugin}" PRIVATE "${COMPILE_FLAGS}") INSTALL(TARGETS "${_plugin}" LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") ENDFOREACH() @@ -75,7 +75,7 @@ INCLUDE_DIRECTORIES( ) ADD_LIBRARY(iir STATIC ladspa/util/iir.c) -SET_TARGET_PROPERTIES(iir PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(iir PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(bandpass_a_iir_1893 iir) TARGET_LINK_LIBRARIES(bandpass_iir_1892 iir) TARGET_LINK_LIBRARIES(butterworth_1902 iir) @@ -86,23 +86,23 @@ TARGET_LINK_LIBRARIES(notch_iir_1894 iir) FILE(GLOB GSM_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/ladspa/gsm/*.c") LIST(SORT GSM_SOURCES) ADD_LIBRARY(gsm STATIC ${GSM_SOURCES}) -SET_TARGET_PROPERTIES(gsm PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(gsm PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(gsm_1215 gsm) ADD_LIBRARY(gverb STATIC ladspa/gverb/gverb.c ladspa/gverb/gverbdsp.c) -SET_TARGET_PROPERTIES(gverb PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(gverb PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(gverb_1216 gverb) ADD_LIBRARY(blo STATIC ladspa/util/blo.c) -SET_TARGET_PROPERTIES(blo PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(blo PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(analogue_osc_1416 blo) TARGET_LINK_LIBRARIES(fm_osc_1415 blo) TARGET_LINK_LIBRARIES(hermes_filter_1200 blo) ADD_LIBRARY(rms STATIC ladspa/util/rms.c) ADD_LIBRARY(db STATIC ladspa/util/db.c) -SET_TARGET_PROPERTIES(rms PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") -SET_TARGET_PROPERTIES(db PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(rms PRIVATE "${PIC_FLAGS}") +target_compile_options(db PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(sc1_1425 rms db) TARGET_LINK_LIBRARIES(sc2_1426 rms db) TARGET_LINK_LIBRARIES(sc3_1427 rms db) @@ -111,7 +111,7 @@ TARGET_LINK_LIBRARIES(sc4m_1916 rms db) TARGET_LINK_LIBRARIES(se4_1883 rms db) ADD_LIBRARY(pitchscale STATIC ladspa/util/pitchscale.c) -SET_TARGET_PROPERTIES(pitchscale PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(pitchscale PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(pitchscale ${FFTW3F_LIBRARIES}) TARGET_LINK_LIBRARIES(pitch_scale_1193 pitchscale) TARGET_LINK_LIBRARIES(pitch_scale_1194 pitchscale) diff --git a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt index c75b95ab7..5bcf9f065 100644 --- a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt +++ b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt @@ -61,10 +61,7 @@ target_compile_definitions(${EXE_NAME} PRIVATE BUILD_REMOTE_PLUGIN_CLIENT) # Workaround for missing WinMain if(MSVC) - set_property(TARGET ${EXE_NAME} - APPEND - PROPERTY LINK_FLAGS "/entry:mainCRTStartup" -) + target_link_options(${EXE_NAME} PRIVATE "/entry:mainCRTStartup") endif() if(IS_MINGW) diff --git a/plugins/ZynAddSubFx/CMakeLists.txt b/plugins/ZynAddSubFx/CMakeLists.txt index 35dc08c4d..0f6af20ee 100644 --- a/plugins/ZynAddSubFx/CMakeLists.txt +++ b/plugins/ZynAddSubFx/CMakeLists.txt @@ -164,8 +164,8 @@ SET_PROPERTY(GLOBAL APPEND PROPERTY PLUGINS_BUILT "RemoteZynAddSubFx") TARGET_COMPILE_DEFINITIONS(RemoteZynAddSubFx PRIVATE BUILD_REMOTE_PLUGIN_CLIENT) IF(LMMS_BUILD_WIN32) - SET_TARGET_PROPERTIES(RemoteZynAddSubFx PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows") -ENDIF(LMMS_BUILD_WIN32) + target_link_options(RemoteZynAddSubFx PRIVATE "-mwindows") +ENDIF() # Remove useless dependencies from FLTK. Use fltk-config to avoid static library # in older environments