mirror of
https://github.com/logos-blockchain/logos-blockchain-ui.git
synced 2026-02-15 19:13:11 +00:00
89 lines
2.9 KiB
Nix
89 lines
2.9 KiB
Nix
# Builds the logos-blockchain-ui library
|
|
{ pkgs, common, src, logosBlockchainModule, 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-blockchain-module result
|
|
echo "Copying include files from logos-blockchain-module..."
|
|
if [ -d "${logosBlockchainModule}/include" ]; then
|
|
echo "Found include directory in logos-blockchain-module"
|
|
cp -r "${logosBlockchainModule}/include"/* ./generated_code/
|
|
echo "Copied include files:"
|
|
ls -la ./generated_code/
|
|
else
|
|
echo "Warning: No include directory found in logos-blockchain-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
|
|
# We are in build/; library is in build/modules/
|
|
if [ -f modules/blockchain_ui.dylib ]; then
|
|
cp modules/blockchain_ui.dylib $out/lib/
|
|
elif [ -f modules/blockchain_ui.so ]; then
|
|
cp modules/blockchain_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
|
|
'';
|
|
}
|