diff --git a/.gitignore b/.gitignore index 1553f7c..b6f9cc2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*.o *.obj CMakePresets.json build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 568b6c6..7d199cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,8 @@ message(STATUS "SCons: ${SCONS_PROGRAM}") if(WIN32) set(GODOT_PLATFORM "windows") +elseif(APPLE) + set(GODOT_PLATFORM "macos") else() set(GODOT_PLATFORM "linuxbsd") endif() diff --git a/README.md b/README.md index f5cf389..cab77b7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ * Python >= 3.6 * SCons >= 4.5.2 + +On MacOS, you will also need two other things + * MoltenVK (follow [Godot instructions](https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_macos.html) + * llvm-ar (I used homebrew's llvm). + #### Test Prerequisites * Catch2 >= 2.13.8 @@ -50,6 +55,12 @@ cmake -E make_directory build cmake -B build -S . ``` +On MacOS, you need to direct CMake to use your llvm-ar, perhaps like this: + +``` +cmake -DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar -B build -S . +``` + 5. Build the project's extended version of Godot >= 4.2 e.g. ``` @@ -64,6 +75,8 @@ Launch the project's extended version of Godot >= 4.2 e.g. godot\bin\godot.windows.editor.x86_64.exe ``` +(On other platforms, the binary name will be slightly different.) + ## Roadmap ## License diff --git a/godot b/godot index b09f793..15073af 160000 --- a/godot +++ b/godot @@ -1 +1 @@ -Subproject commit b09f793f564a6c95dc76acc654b390e68441bd01 +Subproject commit 15073afe3856abd2aa1622492fe50026c7d63dc1 diff --git a/modules/reality_merge/thirdparty/cavi_usdj-am/include/cavi/usdj_am/class_declaration.hpp b/modules/reality_merge/thirdparty/cavi_usdj-am/include/cavi/usdj_am/class_declaration.hpp index 9fe6434..d9bbdf8 100644 --- a/modules/reality_merge/thirdparty/cavi_usdj-am/include/cavi/usdj_am/class_declaration.hpp +++ b/modules/reality_merge/thirdparty/cavi_usdj-am/include/cavi/usdj_am/class_declaration.hpp @@ -70,7 +70,7 @@ struct ClassDeclaration : public std::variant(&pos))) { os << pos; } val_type = AMitemValType(c_item); diff --git a/modules/reality_merge/usdj_body_updater.h b/modules/reality_merge/usdj_body_updater.h index 1a108e4..199a26b 100644 --- a/modules/reality_merge/usdj_body_updater.h +++ b/modules/reality_merge/usdj_body_updater.h @@ -75,13 +75,13 @@ class UsdjBodyUpdater : public cavi::usdj_am::Visitor { UsdjBodyUpdater(UsdjBodyUpdater const&) = delete; - UsdjBodyUpdater(UsdjBodyUpdater&&) = default; + UsdjBodyUpdater(UsdjBodyUpdater&&) = delete; ~UsdjBodyUpdater(); UsdjBodyUpdater& operator=(UsdjBodyUpdater const&) = delete; - UsdjBodyUpdater& operator=(UsdjBodyUpdater&&) = default; + UsdjBodyUpdater& operator=(UsdjBodyUpdater&&) = delete; /// \brief Creates new physics bodies and sorts pre-existing ones into /// categories of forgotten, kept and removed. diff --git a/modules/reality_merge/usdj_box_size_extractor.h b/modules/reality_merge/usdj_box_size_extractor.h index 367bfc6..5a74109 100644 --- a/modules/reality_merge/usdj_box_size_extractor.h +++ b/modules/reality_merge/usdj_box_size_extractor.h @@ -54,7 +54,7 @@ class UsdjBoxSizeExtractor : public cavi::usdj_am::Visitor { UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor const&) = delete; - UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor&&) = default; + UsdjBoxSizeExtractor& operator=(UsdjBoxSizeExtractor&&) = delete; std::optional operator()(); diff --git a/modules/reality_merge/usdj_color_extractor.h b/modules/reality_merge/usdj_color_extractor.h index c618bfb..dc6aae6 100644 --- a/modules/reality_merge/usdj_color_extractor.h +++ b/modules/reality_merge/usdj_color_extractor.h @@ -55,7 +55,7 @@ class UsdjColorExtractor : public cavi::usdj_am::Visitor { UsdjColorExtractor& operator=(UsdjColorExtractor const&) = delete; - UsdjColorExtractor& operator=(UsdjColorExtractor&&) = default; + UsdjColorExtractor& operator=(UsdjColorExtractor&&) = delete; std::optional operator()(); diff --git a/modules/reality_merge/usdj_geometry_extractor.h b/modules/reality_merge/usdj_geometry_extractor.h index 7869dbd..da2e261 100644 --- a/modules/reality_merge/usdj_geometry_extractor.h +++ b/modules/reality_merge/usdj_geometry_extractor.h @@ -65,7 +65,7 @@ class UsdjGeometryExtractor : public cavi::usdj_am::Visitor { UsdjGeometryExtractor& operator=(UsdjGeometryExtractor const&) = delete; - UsdjGeometryExtractor& operator=(UsdjGeometryExtractor&&) = default; + UsdjGeometryExtractor& operator=(UsdjGeometryExtractor&&) = delete; std::pair operator()(); diff --git a/modules/reality_merge/usdj_static_body_3d.h b/modules/reality_merge/usdj_static_body_3d.h index ef83321..694cf10 100644 --- a/modules/reality_merge/usdj_static_body_3d.h +++ b/modules/reality_merge/usdj_static_body_3d.h @@ -74,7 +74,7 @@ class UsdjStaticBody3D : public PhysicsBody3D { UsdjStaticBody3D(UsdjStaticBody3D&&) = default; - UsdjStaticBody3D& operator=(UsdjStaticBody3D&&) = default; + UsdjStaticBody3D& operator=(UsdjStaticBody3D&&) = delete; AMobjId const* get_object_id() const; diff --git a/modules/reality_merge/usdj_transform_3d_extractor.h b/modules/reality_merge/usdj_transform_3d_extractor.h index a684a18..3ddcd5f 100644 --- a/modules/reality_merge/usdj_transform_3d_extractor.h +++ b/modules/reality_merge/usdj_transform_3d_extractor.h @@ -54,7 +54,7 @@ class UsdjTransform3dExtractor : public cavi::usdj_am::Visitor { UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor const&) = delete; - UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor&&) = default; + UsdjTransform3dExtractor& operator=(UsdjTransform3dExtractor&&) = delete; std::optional operator()(); diff --git a/modules/reality_merge/usdj_velocity_extractor.h b/modules/reality_merge/usdj_velocity_extractor.h index ac7a53c..26ebffd 100644 --- a/modules/reality_merge/usdj_velocity_extractor.h +++ b/modules/reality_merge/usdj_velocity_extractor.h @@ -54,7 +54,7 @@ class UsdjVelocityExtractor : public cavi::usdj_am::Visitor { UsdjVelocityExtractor& operator=(UsdjVelocityExtractor const&) = delete; - UsdjVelocityExtractor& operator=(UsdjVelocityExtractor&&) = default; + UsdjVelocityExtractor& operator=(UsdjVelocityExtractor&&) = delete; /// \throws std::invalid_argument std::optional operator()(cavi::usdj_am::usd::physics::TokenType const reference);