mirror of
https://github.com/logos-storage/logos-storage-app-skeleton.git
synced 2026-08-01 03:43:11 +00:00
Add Nix lib configuration
This commit is contained in:
parent
61baa09899
commit
de0263332b
88
nix/lib.nix
Normal file
88
nix/lib.nix
Normal file
@ -0,0 +1,88 @@
|
||||
# Builds the logos-storage-ui library
|
||||
{ pkgs, common, src, logosStorageModule, logosSdk }:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "${common.pname}-lib";
|
||||
version = common.version;
|
||||
|
||||
inherit src;
|
||||
inherit (common) buildInputs cmakeFlags meta env;
|
||||
|
||||
# Add logosSdk to nativeBuildInputs for logos-cpp-generator
|
||||
nativeBuildInputs = common.nativeBuildInputs ++ [ logosSdk ];
|
||||
|
||||
preConfigure = ''
|
||||
runHook prePreConfigure
|
||||
|
||||
# Create generated_code directory for generated files
|
||||
mkdir -p ./generated_code
|
||||
|
||||
# Copy include files from logos-storage-module result
|
||||
echo "Copying include files from logos-storage-module..."
|
||||
if [ -d "${logosStorageModule}/include" ]; then
|
||||
echo "Found include directory in logos-storage-module"
|
||||
cp -r "${logosStorageModule}/include"/* ./generated_code/
|
||||
echo "Copied include files:"
|
||||
ls -la ./generated_code/
|
||||
else
|
||||
echo "Warning: No include directory found in logos-storage-module"
|
||||
fi
|
||||
|
||||
# Run logos-cpp-generator with metadata.json and --general-only flag
|
||||
echo "Running logos-cpp-generator..."
|
||||
logos-cpp-generator --metadata ${src}/metadata.json --general-only --output-dir ./generated_code
|
||||
|
||||
# Check what was generated by logos-cpp-generator
|
||||
echo "Checking generated files in generated_code:"
|
||||
ls -la ./generated_code/
|
||||
|
||||
# Create include directory and move generated files there if they exist
|
||||
if [ -f "./generated_code/core_manager_api.h" ] || [ -f "./generated_code/logos_sdk.h" ]; then
|
||||
echo "Creating include directory and moving generated files..."
|
||||
mkdir -p ./generated_code/include
|
||||
# Move generated header files to include directory
|
||||
for file in ./generated_code/*.h; do
|
||||
if [ -f "$file" ]; then
|
||||
mv "$file" ./generated_code/include/
|
||||
fi
|
||||
done
|
||||
# Also copy generated .cpp files to include directory
|
||||
for file in ./generated_code/*.cpp; do
|
||||
if [ -f "$file" ]; then
|
||||
cp "$file" ./generated_code/include/
|
||||
fi
|
||||
done
|
||||
echo "Generated include directory:"
|
||||
ls -la ./generated_code/include/
|
||||
else
|
||||
echo "Warning: No header files generated by logos-cpp-generator"
|
||||
fi
|
||||
|
||||
runHook postPreConfigure
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib
|
||||
# Find and copy the built library file from the modules directory
|
||||
if [ -f modules/storage_ui.dylib ]; then
|
||||
cp modules/storage_ui.dylib $out/lib/
|
||||
elif [ -f modules/storage_ui.so ]; then
|
||||
cp modules/storage_ui.so $out/lib/
|
||||
else
|
||||
echo "Error: No library file found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Also install the generated include files
|
||||
if [ -d "./generated_code/include" ]; then
|
||||
mkdir -p $out/include
|
||||
cp -r ./generated_code/include/* $out/include/
|
||||
echo "Installed generated include files:"
|
||||
ls -la $out/include/
|
||||
fi
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user