OSDN Git Service

[cmake] Fix target dependency
authorStarg <starg@users.osdn.me>
Sat, 24 Sep 2022 12:34:30 +0000 (21:34 +0900)
committerStarg <starg@users.osdn.me>
Sat, 24 Sep 2022 12:34:30 +0000 (21:34 +0900)
CMakeLists.txt
cfgforsf/CMakeLists.txt
interface/CMakeLists.txt
sf_view_gui/CMakeLists.txt
timidity/CMakeLists.txt

index 3784915..cb44812 100644 (file)
@@ -27,9 +27,9 @@ if("${Git_FOUND}" AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
         COMMAND "${CMAKE_COMMAND}"
             -DGIT_EXECUTABLE="${GIT_EXECUTABLE}"
             -DINFILE="${CMAKE_CURRENT_SOURCE_DIR}/version.h.in"
-            -DOUTFILE="${CMAKE_CURRENT_BINARY_DIR}/version.h"
+            -DOUTFILE="${PROJECT_BINARY_DIR}/version.h"
             -P "${CMAKE_CURRENT_SOURCE_DIR}/WriteVersion.cmake"
-        BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/version.h"
+        BYPRODUCTS "${PROJECT_BINARY_DIR}/version.h"
         WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
         COMMENT "Updating version info..."
     )
index 3179c47..d8616e1 100644 (file)
@@ -36,17 +36,14 @@ add_library(
     ../timidity/timidity.h
 )
 
+set_source_files_properties(../timidity/version.c PROPERTIES OBJECT_DEPENDS "${PROJECT_BINARY_DIR}/version.h")
+add_dependencies(timidity_cfgforsf UpdateTim41Version)
+
 add_executable(
     cfgforsf
     
     ../timidity/sndfont.c
-
-    $<TARGET_OBJECTS:timidity_cfgforsf>
-    $<TARGET_OBJECTS:libarc>
-    $<TARGET_OBJECTS:utils>
 )
 
-add_dependencies(cfgforsf UpdateTim41Version)
-target_link_libraries(cfgforsf ws2_32)
-
+target_link_libraries(cfgforsf timidity_cfgforsf libarc utils ws2_32)
 install(TARGETS cfgforsf)
index a2b61d1..4a3a79e 100644 (file)
@@ -90,22 +90,23 @@ set(
        ../twsyn_bridge/twsyn_bridge_host.h
 )
 
-set_source_files_properties(
-    w32g_res.rc
-
-    PROPERTIES
-        OBJECT_DEPENDS
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_btn.bmp"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon.ico"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_gray.ico"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_normal.ico"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_silver.ico"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_playlist_play.ico"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_sleep.bmp"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_subbtn.bmp"
-            "${CMAKE_CURRENT_SOURCE_DIR}/w32g_tracer.bmp"
+set(
+    W32GRES_DEPS
+
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_btn.bmp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon.ico"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_gray.ico"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_normal.ico"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_icon_silver.ico"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_playlist_play.ico"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_sleep.bmp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_subbtn.bmp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/w32g_tracer.bmp"
+    "${PROJECT_BINARY_DIR}/version.h"
 )
 
+set_source_files_properties(w32g_res.rc PROPERTIES OBJECT_DEPENDS "${W32GRES_DEPS}")
+
 # for timidity
 
 add_library(
index a42bd45..ea25abb 100644 (file)
@@ -20,13 +20,7 @@ add_executable(
     ../timidity/myini.h
 
     sfview_dlg.rc
-
-    $<TARGET_OBJECTS:timidity_cfgforsf>
-    $<TARGET_OBJECTS:libarc>
-    $<TARGET_OBJECTS:utils>
 )
 
-add_dependencies(sfviewer UpdateTim41Version)
-target_link_libraries(sfviewer comctl32 shlwapi ws2_32)
-
+target_link_libraries(sfviewer timidity_cfgforsf libarc utils comctl32 shlwapi ws2_32)
 install(TARGETS sfviewer)
index d9c8fa0..e1ff9c2 100644 (file)
@@ -22,7 +22,7 @@ add_custom_command(
     COMMAND calcnewton "${CMAKE_CURRENT_BINARY_DIR}/newton_table.c"
 )
 
-set_source_files_properties(resample.c OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/newton_table.c")
+set_source_files_properties(resample.c PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/newton_table.c")
 include_directories("${CMAKE_CURRENT_BINARY_DIR}")
 
 # timidity common
@@ -62,10 +62,6 @@ set(
     timidity.h
     vstwrapper.h
     wrd.h
-
-    $<TARGET_OBJECTS:libarc>
-    $<TARGET_OBJECTS:libunimod>
-    $<TARGET_OBJECTS:utils>
 )
 
 add_definitions(${TIMIDITY_FE_DEFINITIONS})
@@ -190,6 +186,9 @@ add_library(
     ../vorbis-tools/vorbiscomment/vcedit.h
 )
 
+set_source_files_properties(version.c PROPERTIES OBJECT_DEPENDS "${PROJECT_BINARY_DIR}/version.h")
+add_dependencies(timidity_common UpdateTim41Version)
+
 set(
     TIMIDITY_COMMON_LIBS
 
@@ -202,67 +201,47 @@ set(
 )
 
 # timidity
-
 add_executable(
     timidity
 
     ${TIMIDITY_INTERFACE_DEPENDENT_SOURCE}
-    $<TARGET_OBJECTS:interface>
-    $<TARGET_OBJECTS:timidity_common>
 )
 
-add_dependencies(timidity UpdateTim41Version)
 target_compile_definitions(timidity PRIVATE -DIA_NCURSES -DIA_VT100)
-target_link_libraries(timidity ${TIMIDITY_COMMON_LIBS} pdcurses)
-
+target_link_libraries(timidity interface libarc libunimod utils timidity_common ${TIMIDITY_COMMON_LIBS} pdcurses)
 install(TARGETS timidity)
 
 # twsynsrv
-
 add_executable(
     twsynsrv
 
     ${TIMIDITY_INTERFACE_DEPENDENT_SOURCE}
-    $<TARGET_OBJECTS:interface_synsrv>
-    $<TARGET_OBJECTS:timidity_common>
 )
 
-add_dependencies(twsynsrv UpdateTim41Version)
 target_compile_definitions(twsynsrv PRIVATE -DIA_WINSYN -DTWSYNSRV -DTWSYNG32INI)
-target_link_libraries(twsynsrv ${TIMIDITY_COMMON_LIBS})
-
+target_link_libraries(twsynsrv interface_synsrv libarc libunimod utils timidity_common ${TIMIDITY_COMMON_LIBS})
 install(TARGETS twsynsrv)
 
 # timw32g
-
 add_executable(
     timw32g WIN32
 
     ${TIMIDITY_INTERFACE_DEPENDENT_SOURCE}
-    $<TARGET_OBJECTS:interface_w32g>
-    $<TARGET_OBJECTS:timidity_common>
 )
 
-add_dependencies(timw32g UpdateTim41Version)
 target_compile_definitions(timw32g PRIVATE -DIA_W32GUI -D__W32G__)
-target_link_libraries(timw32g ${TIMIDITY_COMMON_LIBS})
+target_link_libraries(timw32g interface_w32g libarc libunimod utils timidity_common ${TIMIDITY_COMMON_LIBS})
 DisableMSManifest(timw32g)
-
 install(TARGETS timw32g)
 
 # twsyng
-
 add_executable(
     twsyng WIN32
 
     ${TIMIDITY_INTERFACE_DEPENDENT_SOURCE}
-    $<TARGET_OBJECTS:interface_w32gsyn>
-    $<TARGET_OBJECTS:timidity_common>
 )
 
-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})
+target_link_libraries(twsyng interface_w32gsyn libarc libunimod utils timidity_common ${TIMIDITY_COMMON_LIBS})
 DisableMSManifest(twsyng)
-
 install(TARGETS twsyng)