OSDN Git Service

Refactor CMake files
authorStarg <starg@users.osdn.me>
Thu, 22 Sep 2022 14:45:23 +0000 (23:45 +0900)
committerStarg <starg@users.osdn.me>
Fri, 23 Sep 2022 23:32:08 +0000 (08:32 +0900)
15 files changed:
CMakeLists.txt
FLAC/CMakeLists.txt
cfgforsf/CMakeLists.txt
lame/CMakeLists.txt
libmpg123/CMakeLists.txt
ogg/CMakeLists.txt
opus/CMakeLists.txt
pdcurses/CMakeLists.txt
portaudio/CMakeLists.txt
portmidi/CMakeLists.txt
sf_view_gui/CMakeLists.txt
speex/CMakeLists.txt
timidity/CMakeLists.txt
twsyn_bridge/CMakeLists.txt
vorbis/CMakeLists.txt

index 0d13fc7..4639133 100644 (file)
@@ -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}")
index 2070965..e9fe10c 100644 (file)
@@ -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)
index 3005e20..3179c47 100644 (file)
@@ -48,3 +48,5 @@ add_executable(
 
 add_dependencies(cfgforsf UpdateTim41Version)
 target_link_libraries(cfgforsf ws2_32)
+
+install(TARGETS cfgforsf)
index 2285376..bb08a8a 100644 (file)
@@ -75,3 +75,5 @@ add_library(
 )
 
 set_target_properties(lame_enc PROPERTIES PREFIX "")
+
+install(TARGETS lame_enc)
index b5f38eb..1d59281 100644 (file)
@@ -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)
index 0a6fa16..b149c32 100644 (file)
@@ -12,3 +12,5 @@ add_library(
 
     win32/ogg.def
 )
+
+install(TARGETS ogg)
index cc504e3..adb2123 100644 (file)
@@ -242,3 +242,5 @@ add_library(
     silk/x86/VQ_WMat_EC_sse4_1.c
     silk/x86/x86_silk_map.c
 )
+
+install(TARGETS opus)
index 2ce5bb2..3f620ce 100644 (file)
@@ -58,3 +58,5 @@ add_library(
     pdcurses.def
     win32/pdcurses.rc
 )
+
+install(TARGETS pdcurses)
index 54923f1..467bbb0 100644 (file)
@@ -95,3 +95,5 @@ else()
 endif()
 
 target_link_libraries(portaudio ole32 advapi32 setupapi winmm)
+
+install(TARGETS portaudio)
index 154df6d..45b69d6 100644 (file)
@@ -20,3 +20,5 @@ add_library(
 )
 
 target_link_libraries(portmidi winmm)
+
+install(TARGETS portmidi)
index 030510a..a42bd45 100644 (file)
@@ -28,3 +28,5 @@ add_executable(
 
 add_dependencies(sfviewer UpdateTim41Version)
 target_link_libraries(sfviewer comctl32 shlwapi ws2_32)
+
+install(TARGETS sfviewer)
index dacce86..89575b0 100644 (file)
@@ -68,3 +68,5 @@ add_library(
 
     libspeex.def
 )
+
+install(TARGETS speex)
index 8e945ef..d9c8fa0 100644 (file)
@@ -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)
index 0ce6bf2..993608d 100644 (file)
@@ -17,3 +17,5 @@ else()
 endif()
 
 target_link_libraries(twsyn_bridge shlwapi winmm)
+
+install(TARGETS twsyn_bridge)
index 7d3a3af..5624e48 100644 (file)
@@ -101,3 +101,5 @@ add_library(
 )
 
 target_link_libraries(vorbisfile ogg vorbis)
+
+install(TARGETS vorbis vorbisenc vorbisfile)