From: Starg Date: Thu, 22 Sep 2022 14:45:23 +0000 (+0900) Subject: Refactor CMake files X-Git-Tag: tim41.7.0~9^2~4 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f8f1600f511f466c39aa5e8cef453b2093a2a92f;p=timidity41%2Ftimidity41.git Refactor CMake files --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d13fc79..4639133f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 3.20) +cmake_policy(SET CMP0091 NEW) # MSVC runtime library flags are selected by an abstraction. +cmake_policy(SET CMP0092 NEW) # Don't add /W3 flag in CMAKE_C_FLAGS by default. + project(timidity41) set(TIM41_X86_SIMD_LEVEL SSE42 CACHE STRING "x86 SIMD instruction set extension to use") @@ -12,20 +15,9 @@ set(TIM41_GCC_WITH_LIBICONV TRUE CACHE BOOL "GCC supports charset conversion") set(TIM41_SPECTRE_MITIGATION FALSE CACHE BOOL "Enable Spectre mitigation") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/Debug/bin") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/Release/bin") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/RelWithDebInfo/bin") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_BINARY_DIR}/MinSizeRel/bin") - -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/Debug/bin") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/Release/bin") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/RelWithDebInfo/bin") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_BINARY_DIR}/MinSizeRel/bin") - -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/Debug/bin") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/Release/bin") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/RelWithDebInfo/bin") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_BINARY_DIR}/MinSizeRel/bin") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/out/bin" CACHE PATH "Where to put all the RUNTIME target files when built.") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/out/lib" CACHE PATH "Where to put all the ARCHIVE target files when built.") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/out/lib" CACHE PATH "Where to put all the LIBRARY target files when built.") find_package(Git) @@ -173,10 +165,6 @@ elseif("${TIM41_X86_SIMD_LEVEL}" STREQUAL "SSE2") endif() if(MSVC) - # remove existing /W3 options - string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - add_compile_options(/W4 /GS /fp:fast) if("${TIM41_SPECTRE_MITIGATION}") diff --git a/FLAC/CMakeLists.txt b/FLAC/CMakeLists.txt index 2070965e..e9fe10cd 100644 --- a/FLAC/CMakeLists.txt +++ b/FLAC/CMakeLists.txt @@ -107,3 +107,5 @@ if(MSVC AND "${CMAKE_C_COMPILER_ID}" MATCHES "Clang" AND NOT TIM41_USE_AVX2) endif() target_link_libraries(FLAC ogg) + +install(TARGETS FLAC) diff --git a/cfgforsf/CMakeLists.txt b/cfgforsf/CMakeLists.txt index 3005e204..3179c476 100644 --- a/cfgforsf/CMakeLists.txt +++ b/cfgforsf/CMakeLists.txt @@ -48,3 +48,5 @@ add_executable( add_dependencies(cfgforsf UpdateTim41Version) target_link_libraries(cfgforsf ws2_32) + +install(TARGETS cfgforsf) diff --git a/lame/CMakeLists.txt b/lame/CMakeLists.txt index 22853765..bb08a8a8 100644 --- a/lame/CMakeLists.txt +++ b/lame/CMakeLists.txt @@ -75,3 +75,5 @@ add_library( ) set_target_properties(lame_enc PROPERTIES PREFIX "") + +install(TARGETS lame_enc) diff --git a/libmpg123/CMakeLists.txt b/libmpg123/CMakeLists.txt index b5f38eb8..1d592816 100644 --- a/libmpg123/CMakeLists.txt +++ b/libmpg123/CMakeLists.txt @@ -78,3 +78,5 @@ add_library( target_compile_definitions(mpg123 PRIVATE -DBUILD_MPG123_DLL INTERFACE -DLINK_MPG123_DLL) target_link_libraries(mpg123 shlwapi) + +install(TARGETS mpg123) diff --git a/ogg/CMakeLists.txt b/ogg/CMakeLists.txt index 0a6fa16d..b149c327 100644 --- a/ogg/CMakeLists.txt +++ b/ogg/CMakeLists.txt @@ -12,3 +12,5 @@ add_library( win32/ogg.def ) + +install(TARGETS ogg) diff --git a/opus/CMakeLists.txt b/opus/CMakeLists.txt index cc504e3f..adb21233 100644 --- a/opus/CMakeLists.txt +++ b/opus/CMakeLists.txt @@ -242,3 +242,5 @@ add_library( silk/x86/VQ_WMat_EC_sse4_1.c silk/x86/x86_silk_map.c ) + +install(TARGETS opus) diff --git a/pdcurses/CMakeLists.txt b/pdcurses/CMakeLists.txt index 2ce5bb28..3f620ceb 100644 --- a/pdcurses/CMakeLists.txt +++ b/pdcurses/CMakeLists.txt @@ -58,3 +58,5 @@ add_library( pdcurses.def win32/pdcurses.rc ) + +install(TARGETS pdcurses) diff --git a/portaudio/CMakeLists.txt b/portaudio/CMakeLists.txt index 54923f13..467bbb0b 100644 --- a/portaudio/CMakeLists.txt +++ b/portaudio/CMakeLists.txt @@ -95,3 +95,5 @@ else() endif() target_link_libraries(portaudio ole32 advapi32 setupapi winmm) + +install(TARGETS portaudio) diff --git a/portmidi/CMakeLists.txt b/portmidi/CMakeLists.txt index 154df6d3..45b69d6a 100644 --- a/portmidi/CMakeLists.txt +++ b/portmidi/CMakeLists.txt @@ -20,3 +20,5 @@ add_library( ) target_link_libraries(portmidi winmm) + +install(TARGETS portmidi) diff --git a/sf_view_gui/CMakeLists.txt b/sf_view_gui/CMakeLists.txt index 030510ab..a42bd456 100644 --- a/sf_view_gui/CMakeLists.txt +++ b/sf_view_gui/CMakeLists.txt @@ -28,3 +28,5 @@ add_executable( add_dependencies(sfviewer UpdateTim41Version) target_link_libraries(sfviewer comctl32 shlwapi ws2_32) + +install(TARGETS sfviewer) diff --git a/speex/CMakeLists.txt b/speex/CMakeLists.txt index dacce86e..89575b0d 100644 --- a/speex/CMakeLists.txt +++ b/speex/CMakeLists.txt @@ -68,3 +68,5 @@ add_library( libspeex.def ) + +install(TARGETS speex) diff --git a/timidity/CMakeLists.txt b/timidity/CMakeLists.txt index 8e945efe..d9c8fa09 100644 --- a/timidity/CMakeLists.txt +++ b/timidity/CMakeLists.txt @@ -215,6 +215,8 @@ add_dependencies(timidity UpdateTim41Version) target_compile_definitions(timidity PRIVATE -DIA_NCURSES -DIA_VT100) target_link_libraries(timidity ${TIMIDITY_COMMON_LIBS} pdcurses) +install(TARGETS timidity) + # twsynsrv add_executable( @@ -229,6 +231,8 @@ add_dependencies(twsynsrv UpdateTim41Version) target_compile_definitions(twsynsrv PRIVATE -DIA_WINSYN -DTWSYNSRV -DTWSYNG32INI) target_link_libraries(twsynsrv ${TIMIDITY_COMMON_LIBS}) +install(TARGETS twsynsrv) + # timw32g add_executable( @@ -244,6 +248,8 @@ target_compile_definitions(timw32g PRIVATE -DIA_W32GUI -D__W32G__) target_link_libraries(timw32g ${TIMIDITY_COMMON_LIBS}) DisableMSManifest(timw32g) +install(TARGETS timw32g) + # twsyng add_executable( @@ -258,3 +264,5 @@ add_dependencies(twsyng UpdateTim41Version) target_compile_definitions(twsyng PRIVATE -DIA_WINSYN -DIA_W32G_SYN -D__W32G__ -DTWSYNG32 -DTWSYNG32INI) target_link_libraries(twsyng ${TIMIDITY_COMMON_LIBS}) DisableMSManifest(twsyng) + +install(TARGETS twsyng) diff --git a/twsyn_bridge/CMakeLists.txt b/twsyn_bridge/CMakeLists.txt index 0ce6bf20..993608d6 100644 --- a/twsyn_bridge/CMakeLists.txt +++ b/twsyn_bridge/CMakeLists.txt @@ -17,3 +17,5 @@ else() endif() target_link_libraries(twsyn_bridge shlwapi winmm) + +install(TARGETS twsyn_bridge) diff --git a/vorbis/CMakeLists.txt b/vorbis/CMakeLists.txt index 7d3a3afb..5624e481 100644 --- a/vorbis/CMakeLists.txt +++ b/vorbis/CMakeLists.txt @@ -101,3 +101,5 @@ add_library( ) target_link_libraries(vorbisfile ogg vorbis) + +install(TARGETS vorbis vorbisenc vorbisfile)