@@ -108,6 +108,8 @@ function (_yup_module_fetch_upstream module_name module_path module_upstream mod
108108
109109 _yup_message (STATUS "Fetching upstream sources for ${module_name} " )
110110
111+ set (upstream_target_dir "${CMAKE_BINARY_DIR} /externals/${module_name} " )
112+
111113 if (module_upstream)
112114 set (download_dir "${CMAKE_BINARY_DIR} /_yup_upstream_downloads" )
113115 file (MAKE_DIRECTORY "${download_dir} " )
@@ -139,28 +141,26 @@ function (_yup_module_fetch_upstream module_name module_path module_upstream mod
139141 endif ()
140142 endif ()
141143
142- set (upstream_target_dir "${CMAKE_BINARY_DIR} /externals/${module_name} /upstream" )
143- file (REMOVE_RECURSE "${upstream_target_dir} " )
144- file (MAKE_DIRECTORY "${upstream_target_dir} " )
145144 file (GLOB extracted_items "${source_dir} /*" )
146145 if (extracted_items)
146+ file (REMOVE_RECURSE "${upstream_target_dir} " )
147+ file (MAKE_DIRECTORY "${upstream_target_dir} " )
147148 file (COPY ${extracted_items} DESTINATION "${upstream_target_dir} " )
148149 endif ()
149150 else ()
150151 if (NOT module_branch)
151152 set (module_branch "HEAD" )
152153 endif ()
153154
154- set (upstream_target_dir "${CMAKE_BINARY_DIR} /externals/${module_name} /upstream" )
155155 if (module_submodules)
156156 set (module_submodules_recurse ON )
157157 else ()
158158 set (module_submodules_recurse OFF )
159159 endif ()
160160
161- file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR} /externals/${module_name} " )
162-
163161 file (REMOVE_RECURSE "${upstream_target_dir} " )
162+ file (MAKE_DIRECTORY "${upstream_target_dir} " )
163+
164164 set (module_branch_value "${module_branch} " )
165165 string (STRIP "${module_branch_value} " module_branch_value)
166166 string (REGEX REPLACE "^\" (.*)\" $" "\\ 1" module_branch_value "${module_branch_value} " )
@@ -208,7 +208,7 @@ function (_yup_module_fetch_upstream module_name module_path module_upstream mod
208208 list (APPEND clone_args "${module_repository} " "${upstream_target_dir} " )
209209 execute_process (
210210 COMMAND ${clone_args}
211- WORKING_DIRECTORY "${CMAKE_BINARY_DIR} /externals/ ${module_name } "
211+ WORKING_DIRECTORY "${upstream_target_dir } "
212212 RESULT_VARIABLE clone_result)
213213 endif ()
214214
@@ -712,9 +712,10 @@ function (yup_add_module module_path modules_definitions module_group)
712712 if (module_upstream OR module_repository)
713713 _yup_module_get_upstream_path ("${module_name} " "${module_path} " module_upstream_path)
714714 if (module_upstream_path)
715- list (APPEND module_include_paths "${module_upstream_path} " )
715+ get_filename_component (module_upstream_include_path ${module_upstream_path} DIRECTORY )
716+ list (APPEND module_include_paths "${module_upstream_path} " "${module_upstream_include_path} " )
716717 else ()
717- list (APPEND module_include_paths "${CMAKE_BINARY_DIR} /externals/ ${module_name} /upstream " )
718+ list (APPEND module_include_paths "${CMAKE_BINARY_DIR} /externals" )
718719 endif ()
719720 endif ()
720721
@@ -726,7 +727,7 @@ function (yup_add_module module_path modules_definitions module_group)
726727 elseif (module_upstream_path AND EXISTS "${module_upstream_path} /${searchpath} " )
727728 list (APPEND module_include_paths "${module_upstream_path} /${searchpath} " )
728729 elseif (module_upstream OR module_repository)
729- list (APPEND module_include_paths "${CMAKE_BINARY_DIR} /externals/${module_name} /upstream/ ${searchpath} " )
730+ list (APPEND module_include_paths "${CMAKE_BINARY_DIR} /externals/${module_name} /${searchpath} " )
730731 endif ()
731732 endforeach ()
732733
@@ -821,60 +822,25 @@ macro (yup_add_default_modules modules_path)
821822
822823 # ==== Thirdparty modules
823824 set (thirdparty_group "Thirdparty" )
824- yup_add_module (${modules_path} /thirdparty/zlib "${modules_definitions} " ${thirdparty_group} )
825- yup_add_module (${modules_path} /thirdparty/glad "${modules_definitions} " ${thirdparty_group} )
826- yup_add_module (${modules_path} /thirdparty/harfbuzz "${modules_definitions} " ${thirdparty_group} )
827- yup_add_module (${modules_path} /thirdparty/libpng "${modules_definitions} " ${thirdparty_group} )
828- yup_add_module (${modules_path} /thirdparty/libwebp "${modules_definitions} " ${thirdparty_group} )
829- yup_add_module (${modules_path} /thirdparty/sheenbidi "${modules_definitions} " ${thirdparty_group} )
830- yup_add_module (${modules_path} /thirdparty/yoga_library "${modules_definitions} " ${thirdparty_group} )
831- yup_add_module (${modules_path} /thirdparty/rive "${modules_definitions} " ${thirdparty_group} )
832- yup_add_module (${modules_path} /thirdparty/rive_decoders "${modules_definitions} " ${thirdparty_group} )
833- yup_add_module (${modules_path} /thirdparty/rive_renderer "${modules_definitions} " ${thirdparty_group} )
834- yup_add_module (${modules_path} /thirdparty/oboe_library "${modules_definitions} " ${thirdparty_group} )
835- yup_add_module (${modules_path} /thirdparty/pffft_library "${modules_definitions} " ${thirdparty_group} )
836- yup_add_module (${modules_path} /thirdparty/dr_libs "${modules_definitions} " ${thirdparty_group} )
837- yup_add_module (${modules_path} /thirdparty/opus_library "${modules_definitions} " ${thirdparty_group} )
838- yup_add_module (${modules_path} /thirdparty/flac_library "${modules_definitions} " ${thirdparty_group} )
839- yup_add_module (${modules_path} /thirdparty/hmp3_library "${modules_definitions} " ${thirdparty_group} )
825+ file (GLOB thirdparty_module_dirs "${modules_path} /thirdparty/*" )
826+ foreach (thirdparty_module_dir IN LISTS thirdparty_module_dirs)
827+ if (IS_DIRECTORY "${thirdparty_module_dir} " )
828+ get_filename_component (module_dir_name "${thirdparty_module_dir} " NAME )
829+ yup_add_module (${modules_path} /thirdparty/${module_dir_name} "${modules_definitions} " ${thirdparty_group} )
830+ endif ()
831+ endforeach ()
840832
841833 # ==== Yup modules
842834 set (modules_group "Modules" )
843- yup_add_module (${modules_path} /modules/yup_core "${modules_definitions} " ${modules_group} )
844- add_library (yup::yup_core ALIAS yup_core)
845-
846- yup_add_module (${modules_path} /modules/yup_events "${modules_definitions} " ${modules_group} )
847- add_library (yup::yup_events ALIAS yup_events)
848-
849- yup_add_module (${modules_path} /modules/yup_data_model "${modules_definitions} " ${modules_group} )
850- add_library (yup::yup_data_model ALIAS yup_data_model)
851-
852- yup_add_module (${modules_path} /modules/yup_dsp "${modules_definitions} " ${modules_group} )
853- add_library (yup::yup_dsp ALIAS yup_dsp)
854-
855- yup_add_module (${modules_path} /modules/yup_graphics "${modules_definitions} " ${modules_group} )
856- add_library (yup::yup_graphics ALIAS yup_graphics)
857-
858- yup_add_module (${modules_path} /modules/yup_gui "${modules_definitions} " ${modules_group} )
859- add_library (yup::yup_gui ALIAS yup_gui)
860-
861- yup_add_module (${modules_path} /modules/yup_audio_basics "${modules_definitions} " ${modules_group} )
862- add_library (yup::yup_audio_basics ALIAS yup_audio_basics)
863-
864- yup_add_module (${modules_path} /modules/yup_audio_devices "${modules_definitions} " ${modules_group} )
865- add_library (yup::yup_audio_devices ALIAS yup_audio_devices)
866-
867- yup_add_module (${modules_path} /modules/yup_audio_formats "${modules_definitions} " ${modules_group} )
868- add_library (yup::yup_audio_formats ALIAS yup_audio_formats)
869-
870- yup_add_module (${modules_path} /modules/yup_audio_processors "${modules_definitions} " ${modules_group} )
871- add_library (yup::yup_audio_processors ALIAS yup_audio_processors)
872-
873- yup_add_module (${modules_path} /modules/yup_audio_gui "${modules_definitions} " ${modules_group} )
874- add_library (yup::yup_audio_gui ALIAS yup_audio_gui)
875-
876- yup_add_module (${modules_path} /modules/yup_audio_plugin_client "${modules_definitions} " ${modules_group} )
877- add_library (yup::yup_audio_plugin_client ALIAS yup_audio_plugin_client)
835+ file (GLOB yup_module_dirs "${modules_path} /modules/*" )
836+ list (FILTER yup_module_dirs EXCLUDE REGEX ".*yup_python.*" )
837+ foreach (yup_module_dir IN LISTS yup_module_dirs)
838+ if (IS_DIRECTORY "${yup_module_dir} " )
839+ get_filename_component (module_dir_name "${yup_module_dir} " NAME )
840+ yup_add_module (${modules_path} /modules/${module_dir_name} "${modules_definitions} " ${modules_group} )
841+ add_library (yup::${module_dir_name} ALIAS ${module_dir_name} )
842+ endif ()
843+ endforeach ()
878844
879845 if (YUP_ARG_ENABLE_PYTHON)
880846 if (NOT YUP_BUILD_WHEEL)
0 commit comments