diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 29d8d9f2..fb5df882 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,11 +153,10 @@ jobs: if: matrix.config.os == 'macos' run: | brew update - # TODO annotate with lld@19, after that is accepted, we don't want to use lld@20 without manually updating it ! - brew install llvm@19 lld - echo "$(brew --prefix)/opt/llvm/bin" >> $GITHUB_PATH - echo "LDFLAGS=-L$(brew --prefix)/opt/llvm/lib -L$(brew --prefix)/opt/llvm/lib/c++ -Wl,-rpath,$(brew --prefix)/opt/llvm/lib/c++" >> "$GITHUB_ENV" - echo "CPPFLAGS=-I$(brew --prefix)/opt/llvm/include" >> "$GITHUB_ENV" + brew install llvm@19 lld@19 + echo "$(brew --prefix)/opt/llvm@19/bin:$(brew --prefix)/opt/lld@19/bin" >> $GITHUB_PATH + echo "LDFLAGS=-L$(brew --prefix)/opt/llvm@19/lib -L$(brew --prefix)/opt/llvm@19/lib/c++ -Wl,-rpath,$(brew --prefix)/opt/llvm@19/lib/c++ -L$(brew --prefix)/opt/lld@19/lib" >> "$GITHUB_ENV" + echo "CPPFLAGS=-I$(brew --prefix)/opt/llvm@19/include -I$(brew --prefix)/opt/lld@19/include" >> "$GITHUB_ENV" echo "CC=clang" >> "$GITHUB_ENV" echo "CXX=clang++" >> "$GITHUB_ENV" echo "OBJC=clang" >> "$GITHUB_ENV" diff --git a/.gitmodules b/.gitmodules index bec4aeaa..1d9146d1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,3 +14,9 @@ path = wrapper/python url = https://github.com/Totto16/oopetris_wrapper_python.git ignore = dirty +[submodule "wrapper/java"] + path = wrapper/java + url = https://github.com/Totto16/oopetris_wrapper_java.git + ignore = dirty + + diff --git a/wrapper/README.md b/wrapper/README.md index 9442f12e..f0233515 100644 --- a/wrapper/README.md +++ b/wrapper/README.md @@ -2,29 +2,45 @@ ## What is this -This are wrappers of some OOPetris functionaility in other languages. +These are wrappers of some OOPetris functionaility in other languages. They are all in submodules alias in a seperate git repo. They currently wrap this: + - OOPetris Recordings Planned: + - OOPetris AI support ## Languages - Current: + - Node.js (C++ binding) - C (C++ binding) - Haskell (C binding) - Python (C++ binding) +- Java (C++ binding) Planned: + - Lua -- Java - Rust +## OS Comaptibility table + +| Language | Linux | Windows | macOS | +| :------: | :---: | :-----: | :---: | +| JS | ✅ | ✅ | ✅ | +| C | ✅ | ✅ | ✅ | +| Haskell | ✅ | ✅ | ❌[^1] | +| Python | ✅ | ✅ | ⚠️[^2] | +| Java | ✅ | ✅ | ✅ | + +[^1]: A needed dependency doesn't yet compile on macOS +[^2]: Arm64 has some errors, that are related to the toolchain (pybind11) + ## Other For more information on how to get / build those, refer to the subfolders of the languages diff --git a/wrapper/java b/wrapper/java new file mode 160000 index 00000000..209d69fe --- /dev/null +++ b/wrapper/java @@ -0,0 +1 @@ +Subproject commit 209d69fee297430461f39d633c7c1160df823816 diff --git a/wrapper/python b/wrapper/python index be791d08..eef30b68 160000 --- a/wrapper/python +++ b/wrapper/python @@ -1 +1 @@ -Subproject commit be791d089dc22cee0e183ad97044a4cc2482926b +Subproject commit eef30b683085677c33977105b8dcc9aadb30fc9e