diff --git a/.gitmodules b/.gitmodules
index 9ae1a725..d9680861 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
[submodule "src/fluid/lib/stb"]
- path = src/fluid/lib/stb
+ path = src/main/c/lib/stb
url = https://github.com/nothings/stb.git
diff --git a/.vscode/settings.json b/.vscode/settings.json
index a1bc6241..3edf9757 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -21,6 +21,7 @@
"electrosphere_server_fluid_manager_serverfluidchunk.h": "c",
"stdio.h": "c",
"cstdlib": "c",
- "pool.h": "c"
+ "pool.h": "c",
+ "mainfunctions.h": "c"
}
}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7fb7f45e..a0ba8c43 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,10 +2,10 @@ cmake_minimum_required(VERSION 3.20.0)
project(StormEngine VERSION 0.1.0 LANGUAGES C)
# Find sources
-file(GLOB_RECURSE SOURCES src/fluid/src/**.c)
+file(GLOB_RECURSE SOURCES src/main/c/src/**.c)
# include header files
-include_directories(src/fluid/includes)
+include_directories(src/main/c/includes)
# include jni
set(JAVA_AWT_LIBRARY NotNeeded)
@@ -22,17 +22,16 @@ add_library(StormEngine SHARED ${SOURCES})
# set props for the lib
target_compile_options(StormEngine PRIVATE -m64 -mavx -mavx2)
+
+# set shared library output dir
set_target_properties(StormEngine PROPERTIES
- CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/shared-folder
+ CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/shared-folder
)
# include and enable testing
include(CTest)
enable_testing()
-# emit test driver to outdir
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out/build)
-
# Grab test files
file(GLOB_RECURSE TEST_FILES ${CMAKE_SOURCE_DIR}/test/c/**.c)
set(TEST_DRIVER test_driver.c)
@@ -51,6 +50,11 @@ create_test_sourcelist(TEST_SOURCE_LIST ${TEST_DRIVER} ${TEST_SOURCES})
# Create test executable
add_executable(test_runner ${TEST_SOURCE_LIST})
+# emit test driver to outdir
+set_target_properties(test_runner PROPERTIES
+ CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out/build
+)
+
# link the library to the test executable
target_link_libraries(test_runner StormEngine)
diff --git a/buildNumber.properties b/buildNumber.properties
index 0b81a4b6..44a8dae2 100644
--- a/buildNumber.properties
+++ b/buildNumber.properties
@@ -1,3 +1,3 @@
#maven.buildNumber.plugin properties file
-#Tue Dec 03 11:43:16 EST 2024
-buildNumber=513
+#Tue Dec 03 12:29:34 EST 2024
+buildNumber=516
diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md
index 189adb0f..8e4bf416 100644
--- a/docs/src/progress/renderertodo.md
+++ b/docs/src/progress/renderertodo.md
@@ -1224,6 +1224,9 @@ Integrate CMake + Ninja
Add testing to native code side
Add native testing step to jenkins pipeline
+(12/03/2024)
+Native code building correctly in jenkins pipeline
+
# TODO
diff --git a/pom.xml b/pom.xml
index fbcf8a53..dde890f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -520,7 +520,7 @@
-h
- src/main/c/includes
+ src/main/c/includes/native
diff --git a/src/fluid/compile.sh b/src/fluid/compile.sh
deleted file mode 100644
index f6b906c9..00000000
--- a/src/fluid/compile.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-cd ./src/fluid
-
-echo "[Fluid Lib] SAVE STEPS $SAVE_STEPS"
-
-LIB_ENDING=".so"
-BASE_INCLUDE_DIR=""
-OS_INCLUDE_DIR=""
-
-#determine os
-if [[ "$OSTYPE" == "linux-gnu"* ]]; then
- #linux
- LIB_ENDING=".so"
- BASE_INCLUDE_DIR="${JAVA_HOME}/include"
- OS_INCLUDE_DIR="${JAVA_HOME}/include/linux"
-elif [[ "$OSTYPE" == "darwin"* ]]; then
- # Mac OSX
- LIB_ENDING=".so"
-elif [[ "$OSTYPE" == "cygwin" ]]; then
- # POSIX compatibility layer and Linux environment emulation for Windows
- LIB_ENDING=".dll"
-elif [[ "$OSTYPE" == "msys" ]]; then
- # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
- LIB_ENDING=".dll"
- BASE_INCLUDE_DIR="${JAVA_HOME}/include"
- OS_INCLUDE_DIR="${JAVA_HOME}/include/win32"
-elif [[ "$OSTYPE" == "win32" ]]; then
- # I'm not sure this can happen.
- LIB_ENDING=".dll"
-elif [[ "$OSTYPE" == "freebsd"* ]]; then
- # ...
- LIB_ENDING=".so"
-else
- # Unknown.
- LIB_ENDING=".so"
-fi
-
-# echo $PWD
-
-#clean compile dir
-rm -f ./*.o
-rm -f ./*.so
-rm -f ./*.dll
-
-
-#compile object files
-# COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
-# INPUT_FILES="./src/densitystep.c"
-# OUTPUT_FILE="./densitystep.o"
-# gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-# COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
-# INPUT_FILES="./src/velocitystep.c"
-# OUTPUT_FILE="./velocitystep.o"
-# gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-# COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
-# INPUT_FILES="./src/chunkmask.c"
-# OUTPUT_FILE="./chunkmask.o"
-# gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -DSAVE_STEPS=$SAVE_STEPS"
-INPUT_FILES="./src/javainterface.c"
-OUTPUT_FILE="./javainterface.o"
-gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -DSAVE_STEPS=$SAVE_STEPS"
-INPUT_FILES="./src/fluidsim.c"
-OUTPUT_FILE="./fluidsim.o"
-gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -DSAVE_STEPS=$SAVE_STEPS"
-INPUT_FILES="./src/metadata/metadatacalc.c"
-OUTPUT_FILE="./metadatacalc.o"
-gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -DSAVE_STEPS=$SAVE_STEPS"
-INPUT_FILES="./src/mem/fluidmem.c"
-OUTPUT_FILE="./fluidmem.o"
-gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -DSAVE_STEPS=$SAVE_STEPS"
-INPUT_FILES="./src/mem/pool.c"
-OUTPUT_FILE="./pool.o"
-gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
-
-
-
-#compile shared object file
-OUTPUT_FILE="libfluidsim$LIB_ENDING"
-COMPILE_FLAGS="-shared"
-INPUT_FILES="fluidsim.o javainterface.o metadatacalc.o fluidmem.o pool.o"
-gcc $COMPILE_FLAGS $INPUT_FILES -o $OUTPUT_FILE
-
-#move to resources
-mkdir -p ../../shared-folder
-mv "./libfluidsim$LIB_ENDING" "../../shared-folder/"
-
-#clean compile dir
-rm -f ./*.o
-rm -f ./*.so
-rm -f ./*.dll
\ No newline at end of file
diff --git a/src/main/c/build.sh b/src/main/c/build.sh
index c782d85e..2f7bb6dc 100644
--- a/src/main/c/build.sh
+++ b/src/main/c/build.sh
@@ -1,3 +1,25 @@
+
+# determine environment variables
+LIB_ENDING=".so"
+if [[ "$OSTYPE" == "linux-gnu"* ]]; then
+ #linux
+ LIB_ENDING=".so"
+elif [[ "$OSTYPE" == "cygwin" ]]; then
+ # POSIX compatibility layer and Linux environment emulation for Windows
+ LIB_ENDING=".dll"
+elif [[ "$OSTYPE" == "msys" ]]; then
+ # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
+ LIB_ENDING=".dll"
+elif [[ "$OSTYPE" == "win32" ]]; then
+ # I'm not sure this can happen.
+ LIB_ENDING=".dll"
+fi
+
+
# Builds the native code
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE= -D CMAKE_INSTALL_PREFIX=${PWD}/out/install -S ${PWD} -B ${PWD}/out/build -G Ninja
-cmake --build ${PWD}/out/build
\ No newline at end of file
+cmake --build ${PWD}/out/build
+
+#copy to expected folder
+mkdir ${PWD}/shared-folder
+cp ${PWD}/out/build/libStormEngine${LIB_ENDING} ${PWD}/shared-folder/
diff --git a/src/fluid/includes/chunk.h b/src/main/c/includes/chunk.h
similarity index 100%
rename from src/fluid/includes/chunk.h
rename to src/main/c/includes/chunk.h
diff --git a/src/fluid/includes/chunkmask.h b/src/main/c/includes/chunkmask.h
similarity index 100%
rename from src/fluid/includes/chunkmask.h
rename to src/main/c/includes/chunkmask.h
diff --git a/src/fluid/includes/environment.h b/src/main/c/includes/environment.h
similarity index 98%
rename from src/fluid/includes/environment.h
rename to src/main/c/includes/environment.h
index b65caa10..cd57bc41 100644
--- a/src/fluid/includes/environment.h
+++ b/src/main/c/includes/environment.h
@@ -1,3 +1,5 @@
+#include
+
#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H
diff --git a/src/fluid/includes/mainFunctions.h b/src/main/c/includes/mainFunctions.h
similarity index 100%
rename from src/fluid/includes/mainFunctions.h
rename to src/main/c/includes/mainFunctions.h
diff --git a/src/fluid/includes/mem/pool.h b/src/main/c/includes/mem/pool.h
similarity index 100%
rename from src/fluid/includes/mem/pool.h
rename to src/main/c/includes/mem/pool.h
diff --git a/src/fluid/includes/metadatacalc.h b/src/main/c/includes/metadatacalc.h
similarity index 100%
rename from src/fluid/includes/metadatacalc.h
rename to src/main/c/includes/metadatacalc.h
diff --git a/src/main/c/includes/electrosphere_client_fluid_cache_FluidChunkData.h b/src/main/c/includes/native/electrosphere_client_fluid_cache_FluidChunkData.h
similarity index 100%
rename from src/main/c/includes/electrosphere_client_fluid_cache_FluidChunkData.h
rename to src/main/c/includes/native/electrosphere_client_fluid_cache_FluidChunkData.h
diff --git a/src/main/c/includes/electrosphere_server_fluid_manager_ServerFluidChunk.h b/src/main/c/includes/native/electrosphere_server_fluid_manager_ServerFluidChunk.h
similarity index 100%
rename from src/main/c/includes/electrosphere_server_fluid_manager_ServerFluidChunk.h
rename to src/main/c/includes/native/electrosphere_server_fluid_manager_ServerFluidChunk.h
diff --git a/src/main/c/includes/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h b/src/main/c/includes/native/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h
similarity index 100%
rename from src/main/c/includes/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h
rename to src/main/c/includes/native/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h
diff --git a/src/fluid/includes/simulation.h b/src/main/c/includes/simulation.h
similarity index 100%
rename from src/fluid/includes/simulation.h
rename to src/main/c/includes/simulation.h
diff --git a/src/fluid/includes/solver_consts.h b/src/main/c/includes/solver_consts.h
similarity index 100%
rename from src/fluid/includes/solver_consts.h
rename to src/main/c/includes/solver_consts.h
diff --git a/src/fluid/includes/utilities.h b/src/main/c/includes/utilities.h
similarity index 100%
rename from src/fluid/includes/utilities.h
rename to src/main/c/includes/utilities.h
diff --git a/src/fluid/lib/stb b/src/main/c/lib/stb
similarity index 100%
rename from src/fluid/lib/stb
rename to src/main/c/lib/stb
diff --git a/src/fluid/src/chunkmask.c b/src/main/c/src/chunkmask.c
similarity index 100%
rename from src/fluid/src/chunkmask.c
rename to src/main/c/src/chunkmask.c
diff --git a/src/fluid/src/densitystep.c b/src/main/c/src/densitystep.c
similarity index 100%
rename from src/fluid/src/densitystep.c
rename to src/main/c/src/densitystep.c
diff --git a/src/fluid/src/fluidsim.c b/src/main/c/src/fluidsim.c
similarity index 99%
rename from src/fluid/src/fluidsim.c
rename to src/main/c/src/fluidsim.c
index cf9e8581..fbda761a 100644
--- a/src/fluid/src/fluidsim.c
+++ b/src/main/c/src/fluidsim.c
@@ -1,7 +1,7 @@
#include
#include "../includes/utilities.h"
#include "../includes/chunkmask.h"
-#include "../../main/c/includes/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h"
+#include "..//includes/native/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h"
#include "../includes/mainFunctions.h"
#include "../includes/chunk.h"
#include "../includes/simulation.h"
diff --git a/src/fluid/src/javainterface.c b/src/main/c/src/javainterface.c
similarity index 100%
rename from src/fluid/src/javainterface.c
rename to src/main/c/src/javainterface.c
diff --git a/src/fluid/src/mem/fluidmem.c b/src/main/c/src/mem/fluidmem.c
similarity index 98%
rename from src/fluid/src/mem/fluidmem.c
rename to src/main/c/src/mem/fluidmem.c
index 2099d92c..09e5cd4f 100644
--- a/src/fluid/src/mem/fluidmem.c
+++ b/src/main/c/src/mem/fluidmem.c
@@ -1,8 +1,8 @@
#include
#include
-#include "../../../main/c/includes/electrosphere_server_fluid_manager_ServerFluidChunk.h"
-#include "../../../main/c/includes/electrosphere_client_fluid_cache_FluidChunkData.h"
+#include "../..//includes/native/electrosphere_server_fluid_manager_ServerFluidChunk.h"
+#include "../..//includes/native/electrosphere_client_fluid_cache_FluidChunkData.h"
#include "../../includes/mem/pool.h"
diff --git a/src/fluid/src/mem/pool.c b/src/main/c/src/mem/pool.c
similarity index 100%
rename from src/fluid/src/mem/pool.c
rename to src/main/c/src/mem/pool.c
diff --git a/src/fluid/src/metadata/metadatacalc.c b/src/main/c/src/metadata/metadatacalc.c
similarity index 100%
rename from src/fluid/src/metadata/metadatacalc.c
rename to src/main/c/src/metadata/metadatacalc.c
diff --git a/src/fluid/src/velocitystep.c b/src/main/c/src/velocitystep.c
similarity index 100%
rename from src/fluid/src/velocitystep.c
rename to src/main/c/src/velocitystep.c