moving native code around
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
7e6b0a1703
commit
a9c7118ac5
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -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
|
||||
|
||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -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"
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
2
pom.xml
2
pom.xml
@ -520,7 +520,7 @@
|
||||
<configuration>
|
||||
<compilerArgs>
|
||||
<arg>-h</arg>
|
||||
<arg>src/main/c/includes</arg>
|
||||
<arg>src/main/c/includes/native</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
#copy to expected folder
|
||||
mkdir ${PWD}/shared-folder
|
||||
cp ${PWD}/out/build/libStormEngine${LIB_ENDING} ${PWD}/shared-folder/
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
#include <jni.h>
|
||||
|
||||
#ifndef ENVIRONMENT_H
|
||||
#define ENVIRONMENT_H
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include <stdint.h>
|
||||
#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"
|
||||
@ -1,8 +1,8 @@
|
||||
#include <jni.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user