From 550c7bf82e4a7658caf2491fb0e3a37bdce8d046 Mon Sep 17 00:00:00 2001 From: Dominic Clark Date: Tue, 6 Sep 2022 17:25:59 +0100 Subject: [PATCH] Improve use of strip command (#6505) --- CMakeLists.txt | 10 +++++++++ cmake/modules/BuildPlugin.cmake | 10 ++++++--- plugins/LadspaEffect/calf/CMakeLists.txt | 13 +++++++---- plugins/LadspaEffect/caps/CMakeLists.txt | 8 ++++++- plugins/LadspaEffect/cmt/CMakeLists.txt | 18 ++++++++++----- plugins/LadspaEffect/swh/CMakeLists.txt | 10 +++++++++ plugins/LadspaEffect/tap/CMakeLists.txt | 13 +++++++---- .../VstBase/RemoteVstPlugin/CMakeLists.txt | 22 ++++++++++++++++--- plugins/ZynAddSubFx/CMakeLists.txt | 16 ++++++++++++-- 9 files changed, 98 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a230a9377e..0453c169b0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -604,6 +604,16 @@ SET(CMAKE_CXX_FLAGS "${WERROR_FLAGS} ${CMAKE_CXX_FLAGS}") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DLMMS_DEBUG") SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLMMS_DEBUG") +if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.16") + set(NOOP_COMMAND "${CMAKE_COMMAND}" "-E" "true") +else() + set(NOOP_COMMAND "${CMAKE_COMMAND}" "-E" "echo") +endif() +if(STRIP) + set(STRIP_COMMAND "$,${NOOP_COMMAND},${STRIP}>") +else() + set(STRIP_COMMAND "${NOOP_COMMAND}") +endif() # people simply updating git will still have this and mess up build with it FILE(REMOVE include/lmmsconfig.h) diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index 675433e631b..f8b3d315392 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -76,9 +76,13 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) ADD_DEPENDENCIES(${PLUGIN_NAME} lmms) ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) - IF(STRIP) - ADD_CUSTOM_COMMAND(TARGET ${PLUGIN_NAME} POST_BUILD COMMAND ${STRIP} "$") - ENDIF() + add_custom_command( + TARGET "${PLUGIN_NAME}" + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES PREFIX "") ENDIF() diff --git a/plugins/LadspaEffect/calf/CMakeLists.txt b/plugins/LadspaEffect/calf/CMakeLists.txt index f5fb632f6ad..90f50641738 100644 --- a/plugins/LadspaEffect/calf/CMakeLists.txt +++ b/plugins/LadspaEffect/calf/CMakeLists.txt @@ -40,10 +40,15 @@ IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") ENDIF() SET_TARGET_PROPERTIES(veal PROPERTIES COMPILE_FLAGS "-fexceptions -O2 -finline-functions ${INLINE_FLAGS}") -# Don't strip if "Debug" or "RelWithDebInfo" -IF(LMMS_BUILD_WIN32 AND NOT CMAKE_BUILD_TYPE MATCHES "Deb") - ADD_CUSTOM_COMMAND(TARGET veal POST_BUILD COMMAND "${STRIP}" "$") -ENDIF() +if(LMMS_BUILD_WIN32) + add_custom_command( + TARGET veal + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) +endif() IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES(veal PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") ENDIF() diff --git a/plugins/LadspaEffect/caps/CMakeLists.txt b/plugins/LadspaEffect/caps/CMakeLists.txt index 0eff4d5cd9c..bdcf3a96af4 100644 --- a/plugins/LadspaEffect/caps/CMakeLists.txt +++ b/plugins/LadspaEffect/caps/CMakeLists.txt @@ -10,7 +10,13 @@ SET_TARGET_PROPERTIES(caps PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O2 -funroll-loops -Wno-write-strings") IF(LMMS_BUILD_WIN32) - ADD_CUSTOM_COMMAND(TARGET caps POST_BUILD COMMAND "${STRIP}" \"$\") + add_custom_command( + TARGET caps + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + 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") diff --git a/plugins/LadspaEffect/cmt/CMakeLists.txt b/plugins/LadspaEffect/cmt/CMakeLists.txt index 7aae5a68324..ded7b895898 100644 --- a/plugins/LadspaEffect/cmt/CMakeLists.txt +++ b/plugins/LadspaEffect/cmt/CMakeLists.txt @@ -7,11 +7,19 @@ INSTALL(TARGETS cmt LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") SET_TARGET_PROPERTIES(cmt PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(cmt PROPERTIES COMPILE_FLAGS "-Wall -O3 -fno-strict-aliasing") -IF(LMMS_BUILD_WIN32 AND NOT CMAKE_BUILD_TYPE MATCHES "Deb") - ADD_CUSTOM_COMMAND(TARGET cmt POST_BUILD COMMAND "${STRIP}" "$") -ELSE() - SET_TARGET_PROPERTIES(cmt PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC") -ENDIF() +if(LMMS_BUILD_WIN32) + add_custom_command( + TARGET cmt + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) +endif() + +if(NOT LMMS_BUILD_WIN32) + set_target_properties(cmt PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC") +endif() IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES(cmt PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") diff --git a/plugins/LadspaEffect/swh/CMakeLists.txt b/plugins/LadspaEffect/swh/CMakeLists.txt index 131e60373a2..aec01c22f8e 100644 --- a/plugins/LadspaEffect/swh/CMakeLists.txt +++ b/plugins/LadspaEffect/swh/CMakeLists.txt @@ -41,6 +41,16 @@ FOREACH(_item ${XML_SOURCES}) TARGET_LINK_LIBRARIES("${_plugin}" m) ENDIF() + if(LMMS_BUILD_WIN32) + add_custom_command( + TARGET "${_plugin}" + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) + 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}") diff --git a/plugins/LadspaEffect/tap/CMakeLists.txt b/plugins/LadspaEffect/tap/CMakeLists.txt index e0740bd5ea6..c8d0a4eb833 100644 --- a/plugins/LadspaEffect/tap/CMakeLists.txt +++ b/plugins/LadspaEffect/tap/CMakeLists.txt @@ -11,10 +11,15 @@ FOREACH(_item ${PLUGIN_SOURCES}) ENDIF() INSTALL(TARGETS "${_plugin}" LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES PREFIX "") - # Don't strip if "Debug" or "RelWithDebInfo" - IF(LMMS_BUILD_WIN32 AND NOT CMAKE_BUILD_TYPE MATCHES "Deb") - ADD_CUSTOM_COMMAND(TARGET "${_plugin}" POST_BUILD COMMAND "${STRIP}" \"$\") - ENDIF() + if(LMMS_BUILD_WIN32) + add_custom_command( + TARGET "${_plugin}" + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) + endif() IF(NOT MSVC) TARGET_LINK_LIBRARIES("${_plugin}" m) ENDIF() diff --git a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt index 43e67f7dea8..3356ae5967d 100644 --- a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt +++ b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt @@ -89,9 +89,25 @@ if(IS_MINGW) endif() endif() -IF(STRIP) - ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} POST_BUILD COMMAND "${STRIP}" "$") -ENDIF() +if(LMMS_BUILD_WIN32) + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.16") + set(NOOP_COMMAND "${CMAKE_COMMAND}" "-E" "true") + else() + set(NOOP_COMMAND "${CMAKE_COMMAND}" "-E" "echo") + endif() + if(STRIP) + set(STRIP_COMMAND "$,${NOOP_COMMAND},${STRIP}>") + else() + set(STRIP_COMMAND "${NOOP_COMMAND}") + endif() + add_custom_command( + TARGET "${EXE_NAME}" + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) +endif() if(BITNESS EQUAL 32) INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION "${PLUGIN_DIR}/32") diff --git a/plugins/ZynAddSubFx/CMakeLists.txt b/plugins/ZynAddSubFx/CMakeLists.txt index 0c8fa8681aa..b184162a387 100644 --- a/plugins/ZynAddSubFx/CMakeLists.txt +++ b/plugins/ZynAddSubFx/CMakeLists.txt @@ -199,6 +199,18 @@ ENDIF(LMMS_BUILD_WIN32) IF(LMMS_BUILD_WIN32) - ADD_CUSTOM_COMMAND(TARGET ZynAddSubFxCore POST_BUILD COMMAND "${STRIP}" \"$\") - ADD_CUSTOM_COMMAND(TARGET RemoteZynAddSubFx POST_BUILD COMMAND "${STRIP}" \"$\") + add_custom_command( + TARGET ZynAddSubFxCore + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) + add_custom_command( + TARGET RemoteZynAddSubFx + POST_BUILD + COMMAND "${STRIP_COMMAND}" "$" + VERBATIM + COMMAND_EXPAND_LISTS + ) ENDIF(LMMS_BUILD_WIN32)