From 149e6bc2935965bdd17543bc740ecfe8e5d397b9 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Mon, 10 Jun 2024 17:01:48 -0300 Subject: [PATCH] maybe fix examples --- .github/workflows/examples.yaml | 27 +++++------- examples/vendored-ipc/README.md | 44 ++++--------------- examples/vendored-minimal/README.md | 26 ++++------- .../src/{ => nanoarrow}/nanoarrow.h | 0 4 files changed, 27 insertions(+), 70 deletions(-) rename examples/vendored-minimal/src/{ => nanoarrow}/nanoarrow.h (100%) diff --git a/.github/workflows/examples.yaml b/.github/workflows/examples.yaml index 902619beb..d80f33d69 100644 --- a/.github/workflows/examples.yaml +++ b/.github/workflows/examples.yaml @@ -60,13 +60,9 @@ jobs: - name: Minimal Vendored Example run: | cd examples/vendored-minimal - mkdir build && cd build - cmake ../../.. -DNANOARROW_BUNDLE=ON -DNANOARROW_NAMESPACE=ExampleVendored - cmake --build . - cmake --install . --prefix=../src - - cd ../src + python3 ../../ci/scripts/bundle.py --source-output-dir=src --include-output-dir=src + cd src gcc -c library.c nanoarrow.c ar rcs libexample_vendored_minimal_library.a library.o nanoarrow.o gcc -o example_vendored_minimal_app app.c libexample_vendored_minimal_library.a @@ -85,17 +81,14 @@ jobs: - name: Ipc Vendored Example run: | cd examples/vendored-ipc - mkdir build && cd build - cmake ../../.. -DNANOARROW_BUNDLE=ON -DNANOARROW_NAMESPACE=ExampleVendored - cmake --build . - cmake --install . --prefix=../src/nanoarrow - mkdir ../build_ipc && cd ../build_ipc - cmake ../../../extensions/nanoarrow_ipc -DNANOARROW_IPC_BUNDLE=ON - cmake --build . - cmake --install . --prefix=../src/nanoarrow - - cd ../src - + python3 ../../ci/scripts/bundle.py \ + --source-output-dir=src \ + --include-output-dir=src \ + --symbol-namespace=MyProject \ + --with-ipc \ + --with-flatcc + + cd src gcc -c library.c nanoarrow/nanoarrow.c nanoarrow/flatcc.c nanoarrow/nanoarrow_ipc.c -I./nanoarrow -I./nanoarrow/flatcc ar rcs libexample_vendored_ipc_library.a library.o nanoarrow.o nanoarrow_ipc.o flatcc.o gcc -o example_vendored_ipc_app app.c libexample_vendored_ipc_library.a diff --git a/examples/vendored-ipc/README.md b/examples/vendored-ipc/README.md index d5b026cbb..6e9b3bfd6 100644 --- a/examples/vendored-ipc/README.md +++ b/examples/vendored-ipc/README.md @@ -29,52 +29,26 @@ to by another project. The nanoarrow/ files included in this example are stubs to illustrate how these files could fit in to a library and/or command-line application project. -The easiest way is to use the pre-generated versions in the dist/ folder of this -repository: +You can generate the bundled versions with the namespace defined using the Python +script `ci/scripts/bundle.py`: ```bash git clone https://github.com/apache/arrow-nanoarrow.git cd arrow-nanoarrow/examples/vendored-ipc -mkdir -p src/nanoarrow -cp ../../dist/nanoarrow.h src/nanoarrow/nanoarrow.h -cp ../../dist/nanoarrow.c src/nanoarrow/nanoarrow.c -cp ../../dist/nanoarrow_ipc.h src/nanoarrow/nanoarrow_ipc.h -cp ../../dist/nanoarrow_ipc.c src/nanoarrow/nanoarrow_ipc.c -cp ../../dist/flatcc.c src/nanoarrow/flatcc.c -cp -r ../../dist/flatcc src/nanoarrow/flatcc -``` - -If you use these, you will have to manually `#define NANOARROW_NAMESPACE MyProject` -in nanoarrow.h. - -You can also generate the bundled versions with the namespace defined using `cmake`: - -```bash -git clone https://github.com/apache/arrow-nanoarrow.git -cd arrow-nanoarrow/examples/vendored-ipc - -# First, build and install nanoarrow -mkdir build -pushd build -cmake ../../.. -DNANOARROW_BUNDLE=ON -DNANOARROW_NAMESPACE=ExampleVendored -cmake --build . -cmake --install . --prefix=../src/nanoarrow -popd -# Then, build and install nanoarrow_ipc -mkdir build_ipc -pushd build_ipc -cmake ../../../extensions/nanoarrow_ipc -DNANOARROW_IPC_BUNDLE=ON -cmake --build . -cmake --install . --prefix=../src/nanoarrow -popd +python ../../ci/scripts/bundle.py \ + --source-output-dir=src \ + --include-output-dir=src \ + --symbol-namespace=MyProject \ + --with-ipc \ + --with-flatcc ``` Then you can build/link the application/library using the build tool of your choosing: ```bash cd src -cc -c library.c nanoarrow/nanoarrow.c nanoarrow/flatcc.c nanoarrow/nanoarrow_ipc.c -I./nanoarrow -I./nanoarrow/flatcc +cc -c library.c nanoarrow.c flatcc.c nanoarrow_ipc.c -I. ar rcs libexample_vendored_ipc_library.a library.o nanoarrow.o nanoarrow_ipc.o flatcc.o cc -o example_vendored_ipc_app app.c libexample_vendored_ipc_library.a ``` diff --git a/examples/vendored-minimal/README.md b/examples/vendored-minimal/README.md index 9654ca200..8450797c4 100644 --- a/examples/vendored-minimal/README.md +++ b/examples/vendored-minimal/README.md @@ -29,28 +29,18 @@ linked to by another project. The nanoarrow.c and nanoarrow.h files included in this example are stubs to illustrate how these files could fit in to a library and/or command-line application project. -The easiest way is to use the pre-generated versions in the dist/ folder of this -repository: - -```bash -git clone https://github.com/apache/arrow-nanoarrow.git -cd arrow-nanoarrow/examples/vendored-minimal -cp ../../dist/nanoarrow.h src/nanoarrow.h -cp ../../dist/nanoarrow.c src/nanoarrow.c -``` - -If you use these, you will have to manually `#define NANOARROW_NAMESPACE MyProject` -manually in nanoarrow.h. - -You can also generate the bundled versions with the namespace defined using `cmake`: +You can generate the bundled versions with the namespace defined using the Python +script `ci/scripts/bundle.py`: ```bash git clone https://github.com/apache/arrow-nanoarrow.git cd arrow-nanoarrow -mkdir build && cd build -cmake .. -DNANOARROW_BUNDLE=ON -DNANOARROW_NAMESPACE=ExampleVendored -cmake --build . -cmake --install . --prefix=../examples/vendored-minimal/src + +cd examples/vendored-minimal +python ../../ci/scripts/bundle.py \ + --source-output-dir=src \ + --include-output-dir=src \ + --symbol-namespace=ExampleVendored ``` Then you can build/link the application/library using the build tool of your choosing: diff --git a/examples/vendored-minimal/src/nanoarrow.h b/examples/vendored-minimal/src/nanoarrow/nanoarrow.h similarity index 100% rename from examples/vendored-minimal/src/nanoarrow.h rename to examples/vendored-minimal/src/nanoarrow/nanoarrow.h