diff --git a/.editorconfig b/.editorconfig index ec865ba1..0f2e6ed7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,7 +5,7 @@ indent_style = space indent_size = 4 insert_final_newline = true -[*.{xml,*proj,props,targets,yml}] +[*.{xml,*proj,props,targets,yml,nuspec}] indent_size = 2 [*.cs] diff --git a/.github/scripts/download_tiledb.sh b/.github/scripts/download_tiledb.sh deleted file mode 100755 index 3d0b8569..00000000 --- a/.github/scripts/download_tiledb.sh +++ /dev/null @@ -1,18 +0,0 @@ -set -e -x -TAG=2.12.0 -ID=ac8a0df - -RELEASE=x86_64-$TAG-$ID -wget https://github.com/TileDB-Inc/TileDB/releases/download/$TAG/tiledb-windows-$RELEASE.zip -unzip tiledb-windows-$RELEASE.zip -d tiledb-windows -cp ./tiledb-windows/bin/tiledb.dll ./sources/TileDB.CSharp/runtimes/win-x64/native/ - -wget https://github.com/TileDB-Inc/TileDB/releases/download/$TAG/tiledb-linux-$RELEASE.tar.gz -mkdir tiledb-linux -tar xvfz tiledb-linux-$RELEASE.tar.gz --directory tiledb-linux -cp ./tiledb-linux/lib/libtiledb.so* ./sources/TileDB.CSharp/runtimes/linux-x64/native/ - -wget https://github.com/TileDB-Inc/TileDB/releases/download/$TAG/tiledb-macos-$RELEASE.tar.gz -mkdir tiledb-macos -tar xvfz tiledb-macos-$RELEASE.tar.gz --directory tiledb-macos -cp ./tiledb-macos/lib/libtiledb.dylib ./sources/TileDB.CSharp/runtimes/osx-x64/native/ diff --git a/.github/scripts/install_tiledb.sh b/.github/scripts/install_tiledb.sh deleted file mode 100755 index 9fa09f19..00000000 --- a/.github/scripts/install_tiledb.sh +++ /dev/null @@ -1,4 +0,0 @@ -set -e -x -cd cpp -cmake . -cmake --build . --target install \ No newline at end of file diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 79d03471..7c0ecbdf 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,90 +1,135 @@ name: Nightly-Build +env: + TILEDB_NIGHTLY_BUILD: 1 + on: schedule: - cron: "15 2 * * *" workflow_dispatch: jobs: - Build: + Build-Native: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest, macos-latest, windows-latest] include: - - os: ubuntu-22.04 - HOST: linux - BOOTSTRAP: ../bootstrap --enable-s3 --enable-serialization + - BOOTSTRAP: ../bootstrap --enable-s3 --enable-serialization - os: ubuntu-latest - HOST: linux - BOOTSTRAP: ../bootstrap --enable-s3 --enable-serialization + platform: linux-x86_64 - os: macos-latest - HOST: osx - BOOTSTRAP: ../bootstrap --enable-s3 --enable-serialization + platform: macos-x86_64 - os: windows-latest - HOST: win + platform: windows-x86_64 BOOTSTRAP: ../bootstrap.ps1 -EnableS3 -EnableSerialization tag: [release-2.12, dev] - dotnet: ['net5.0', 'net6.0'] runs-on: ${{ matrix.os }} - steps: - - name: Checkout TileDB-CSharp - uses: actions/checkout@v3 - with: - path: tiledb-csharp - - name: Checkout TileDB uses: actions/checkout@v3 with: repository: TileDB-Inc/TileDB ref: ${{ matrix.tag }} - path: tiledb + + - name: Build TileDB + run: | + mkdir -p build + cd build + ${{ matrix.BOOTSTRAP }} + cmake --build . --config Release + cmake --build . --config Release --target install-tiledb + cd ../ + mkdir -p artifacts/${{ matrix.platform }} + mv dist/* artifacts/${{ matrix.platform }} + + # We combine the binaries of the many platforms per tag by uploading them to the same artifact. + - name: Upload native artifacts + uses: actions/upload-artifact@v3 + with: + name: tiledb-native-${{ matrix.tag }} + path: artifacts/ + + Pack-NuGet: + needs: Build-Native + strategy: + fail-fast: false + matrix: + tag: [release-2.12, dev] + runs-on: ubuntu-latest + steps: + - name: Checkout TileDB-CSharp + uses: actions/checkout@v3 # GitHub runners come with several versions of .NET preinstalled; Remove them to target version - name: Remove existing .NET versions shell: bash - run: | - rm -rf $DOTNET_ROOT + run: rm -rf $DOTNET_ROOT - name: Set up .NET SDK from global.json uses: actions/setup-dotnet@v3 - with: - global-json-file: tiledb-csharp/global.json - name: Display dotnet versions run: dotnet --info - - name: Build TileDB - run: | - mkdir -p tiledb/build - cd tiledb/build - ${{ matrix.BOOTSTRAP }} - cmake --build . --config Release - cmake --build . --config Release --target install-tiledb - cd ../../ - cp -r tiledb/dist/lib/* tiledb-csharp/sources/TileDB.CSharp/runtimes/${{ matrix.HOST }}-x64/native/ + - name: Download native artifacts + uses: actions/download-artifact@v3 + with: + name: tiledb-native-${{ matrix.tag }} + path: scripts/nuget/temp - - name: Copy Windows tiledb.dll - if: matrix.HOST == 'win' - run: | - cp tiledb/dist/bin/tiledb.dll tiledb-csharp/sources/TileDB.CSharp/runtimes/${{ matrix.HOST }}-x64/native/ + - name: Build native NuGet packages + shell: bash + run: dotnet pack ./scripts/nuget/GenerateNuGetPackages.proj -p:DevelopmentBuild=true -p:VersionTag=${{ matrix.tag }} + + - name: Upload native NuGet packages + uses: actions/upload-artifact@v3 + with: + name: tiledb-nuget-${{ matrix.tag }} + path: scripts/nuget/packages/ + + Test-NuGet: + needs: Pack-NuGet + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, ubuntu-latest, macos-latest, windows-latest] + tag: [release-2.12, dev] + dotnet: ['net5.0', 'net6.0'] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout TileDB-CSharp + uses: actions/checkout@v3 + + # GitHub runners come with several versions of .NET preinstalled; Remove them to target version + - name: Remove existing .NET versions + shell: bash + run: rm -rf $DOTNET_ROOT + + - name: Set up .NET SDK from global.json + uses: actions/setup-dotnet@v3 + + - name: Display dotnet versions + run: dotnet --info + + - name: Download native NuGet packages + uses: actions/download-artifact@v3 + with: + name: tiledb-nuget-${{ matrix.tag }} + path: packages - name: Build TileDB-CSharp - run: | - dotnet build tiledb-csharp/sources/TileDB.CSharp/TileDB.CSharp.csproj /p:Platform=x64 -c Release + run: dotnet build sources/TileDB.CSharp/TileDB.CSharp.csproj -c Release - name: Test TileDB-CSharp - run: | - dotnet test tiledb-csharp/tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj -c Release -f ${{ matrix.dotnet }} + run: dotnet test tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj -c Release -f ${{ matrix.dotnet }} - name: Run examples shell: bash - run: | - find tiledb-csharp/examples/ -name *.csproj -execdir dotnet run \; + run: find examples/ -name *.csproj | xargs -I{} dotnet run --project {} -f ${{ matrix.dotnet }} Create-Issue: - needs: Build + needs: Test-NuGet if: failure() runs-on: ubuntu-latest steps: diff --git a/.github/workflows/tiledb-csharp.yml b/.github/workflows/tiledb-csharp.yml index a90e83f3..d5803d08 100644 --- a/.github/workflows/tiledb-csharp.yml +++ b/.github/workflows/tiledb-csharp.yml @@ -2,7 +2,6 @@ name: TileDB-CSharp on: push: - tags: [ '*' ] branches: [ main ] pull_request: branches: [ main ] @@ -11,6 +10,7 @@ on: jobs: Run-Tests: strategy: + fail-fast: false matrix: # Will be checking following versions dotnet: ['net5.0', 'net6.0'] @@ -21,11 +21,6 @@ jobs: # Checks out repository - uses: actions/checkout@v3 - # Install tiledb - - name: Install tiledb - shell: bash - run: ./.github/scripts/install_tiledb.sh - - name: Remove existing .NET versions shell: bash run: | @@ -40,7 +35,7 @@ jobs: # DotNet build - name: Dotnet build for TileDB.CSharp run: | - dotnet build /p:Platform=x64 -c Release sources/TileDB.CSharp + dotnet build -c Release sources/TileDB.CSharp # DotNet test - name: Test TileDB.CSharp @@ -51,96 +46,3 @@ jobs: shell: bash run: | find examples/ -name *.csproj | xargs -I{} dotnet run --project {} -f ${{ matrix.dotnet }} - - Stage-Release-Candidate: - needs: Run-Tests - runs-on: ubuntu-latest - steps: - # Checks out repository - - uses: actions/checkout@v3 - - - name: Set up .NET SDK from global.json - uses: actions/setup-dotnet@v3 - - - name: Display dotnet versions - run: dotnet --info - - # Download tiledb - - name: Download tiledb - run: ./.github/scripts/download_tiledb.sh - - # DotNet build - - name: Dotnet build for TileDB.CSharp - run: | - dotnet build /p:Platform=x64 -c Release sources/TileDB.CSharp - - # DotNet pack - - name: Dotnet pack for TileDB.CSharp - run: | - dotnet pack ./sources/TileDB.CSharp/TileDB.CSharp.csproj -p:Version=0.0.0-local -c Release - - - name: Archive nuget artifact - uses: actions/upload-artifact@v3 - with: - name: TileDB NuGet Package - path: sources/TileDB.CSharp/lib/TileDB.CSharp.*.nupkg - - Test-NuGet-Release: - needs: Stage-Release-Candidate - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - dotnet: ['net5.0', 'net6.0'] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout TileDB-CSharp repository - uses: actions/checkout@v3 - - - name: Download TileDB.CSharp NuGet artifact - uses: actions/download-artifact@v3 - with: - name: TileDB NuGet Package - path: packages - - # GitHub runners come with several versions of .NET preinstalled; Remove them to target version - - name: Remove existing .NET versions - shell: bash - run: | - rm -rf $DOTNET_ROOT - - - name: Set up .NET SDK from global.json - uses: actions/setup-dotnet@v3 - - - name: Display dotnet versions - run: dotnet --info - - - name: Setup NuGet - uses: nuget/setup-nuget@v1 - - # Run tests using NuGet release candidate - - name: Test TileDB.CSharp - run: | - dotnet test -c Release tests/TileDB.CSharp.Test.NuGet -f ${{ matrix.dotnet }} - - Release: - # Only run this job if a tag was provided - if: startsWith(github.ref, 'refs/tags/') - needs: Test-NuGet-Release - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v3 - with: - name: TileDB NuGet Package - - - name: Create Release - id: create_release - uses: softprops/action-gh-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - files: ./*.nupkg - tag_name: ${{ github.ref_name }} - name: ${{ github.ref_name }} - body: ${{ steps.github_release.outputs.changelog }} - draft: false - prerelease: false diff --git a/.gitignore b/.gitignore index 9b471447..be28747e 100644 --- a/.gitignore +++ b/.gitignore @@ -44,8 +44,6 @@ TileDB-CSharp.sln.DotSettings.user -build - TileDBConfig.cmake TileDbTargets*.cmake tiledb.pc @@ -54,3 +52,7 @@ tiledb.pc .DS_Store include +scripts/nuget/temp +*.binlog +*.nupkg +packages diff --git a/Directory.Build.props b/Directory.Build.props index 1391ea2a..586c5e29 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,4 @@ latest - - - diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..ab1fa8c5 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,30 @@ + + + true + TileDB.Native + [2.12.2,2.13.0) + + + true + + + + + + Local.$(TileDBNativePackageName) + [0.0.0-local] + + + + + + + + + + diff --git a/README.md b/README.md index 6f7539f3..800364bc 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,29 @@ -TileDB-CSharp +![Licensed under the MIT License](https://img.shields.io/github/license/TileDB-Inc/TileDB-CSharp.svg) +[![NuGet](https://img.shields.io/nuget/v/TileDB.CSharp.svg)](https://nuget.org/packages/TileDB.CSharp) +[![Test](https://github.com/TileDB-Inc/TileDB-CSharp/actions/workflows/tiledb-csharp.yml/badge.svg?branch=main&event=push)](https://github.com/TileDB-Inc/TileDB-CSharp/actions/workflows/tiledb-csharp.yml) -# Build -## Download or build tiledb core library +# TileDB-CSharp -```bash -cd cpp -mkdir build && cd build -cmake .. -cmake --build . --target install -``` -## Build TileDB.CSharp +This repository contains the official C# bindings of the [TileDB Embedded](https://tiledb.com/products/tiledb-embedded) storage engine. See more information in [the README of the library project](sources/TileDB.CSharp/README.md). + +## Install + +The library is available on [NuGet](https://nuget.org/packages/TileDB.CSharp). + +## Build ```bash cd sources/TileDB.CSharp -dotnet build /p:Platform=x64 -c Release +dotnet build -c Release ``` -## Test TileDB.CSharp + +## Test ```bash cd tests/TileDB.CSharp.Test dotnet test -c Release ``` -# Old version -The SWIG-based 2.x version of this codebase is available in the -[archive](https://github.com/TileDB-Inc/TileDB-CSharp/tree/archive) branch. +## Old version + +The SWIG-based 2.x version of this codebase is available in the [`archive`](https://github.com/TileDB-Inc/TileDB-CSharp/tree/archive) branch. diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt deleted file mode 100644 index bb70a002..00000000 --- a/cpp/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -# -# CMakeLists.txt -# -# -# setup -cmake_minimum_required(VERSION 3.16) - -set(TILEDB_VERSION "2.12.0" CACHE STRING "TileDB version") -set(TILEDB_GIT_TAG "dev" CACHE STRING "git branch") - -project(TileDB-CSharp) - -# C++11 -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED 11) -set(CMAKE_CXX_EXTENSIONS OFF) - -# Release build by default -set(default_build_type "Release") -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE ${default_build_type}) -endif() - -# installation prefix -message(STATUS "CMAKE_SYSTEM_NAME:${CMAKE_SYSTEM_NAME}") -option(OVERRIDE_INSTALL_PREFIX "override default installation directory to ../dist" ON) -if (OVERRIDE_INSTALL_PREFIX) -# set(PREFIX_REL_PATH "${CMAKE_SOURCE_DIR}/../dist/${CMAKE_SYSTEM_NAME}") - set(PREFIX_REL_PATH "${CMAKE_SOURCE_DIR}/../sources/TileDB.CSharp") - get_filename_component(DEFAULT_PREFIX "${PREFIX_REL_PATH}" ABSOLUTE) - set(CMAKE_INSTALL_PREFIX "${DEFAULT_PREFIX}" CACHE PATH "Default install prefix" FORCE) - message(STATUS "Using default install prefix ${CMAKE_INSTALL_PREFIX}. To control CMAKE_INSTALL_PREFIX, set OVERRIDE_INSTALL_PREFIX=OFF") - -endif() - -if (WIN32) # Windows - set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/runtimes/win-x64/native") - set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/runtimes/win-x64/native") -elseif(APPLE) # OSX - set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/runtimes/osx-x64/native") - set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/runtimes/osx-x64/native") -else() # Linux - set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/runtimes/linux-x64/native") - set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/runtimes/linux-x64/native") -endif() - -message(STATUS "CMAKE_INSTALL_BINDIR: ${CMAKE_INSTALL_BINDIR}") -message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") - -# compiler flags -string(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE) -message(STATUS "BUILD_TYPE:${BUILD_TYPE}") -if(BUILD_TYPE STREQUAL "RELEASE") - add_compile_options(-DNDEBUG) -endif() - -if(BUILD_TYPE STREQUAL "DEBUG") - add_compile_options(-DDEBUG ) -endif() - -## relative path -if(NOT APPLE) - set(CMAKE_BUILD_RPATH "$\{ORIGIN\}") -endif() - -########################################### -# Download released tiledb or build tiledb -########################################## - -# src -include(./cmake/TileDB.cmake) - diff --git a/cpp/cmake/TileDB.cmake b/cpp/cmake/TileDB.cmake deleted file mode 100644 index 154ed93c..00000000 --- a/cpp/cmake/TileDB.cmake +++ /dev/null @@ -1,566 +0,0 @@ -include(FetchContent) -include(GNUInstallDirs) - -############################ -# Download pre-build tiledb or build from source -############################ -message(STATUS "start to set tiledb for version:${TILEDB_VERSION}") - -if(${TILEDB_VERSION} MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$") -message(STATUS "start to set TILEDB_DOWNLOAD_URL and TILEDB_DOWNLOAD_SHA1") - -if(${TILEDB_VERSION} STREQUAL "2.12.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-windows-x86_64-2.12.0-ac8a0df.zip") - SET(TILEDB_DOWNLOAD_SHA1 "b82ed9593a04d2e0950d4267a77412055fce320a") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-macos-x86_64-2.12.0-ac8a0df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "6811578e847f6e4a1e0ecd16229970f4d4e7ffde") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-linux-x86_64-2.12.0-ac8a0df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "23e6ed9c397096a2368974de5eaccb0b3e66ce0b") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.11.3") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.3/tiledb-windows-x86_64-2.11.3-a55a910.zip") - SET(TILEDB_DOWNLOAD_SHA1 "0bd042b1c56da9fc1c20b2156e942c23ba1865ac") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.3/tiledb-macos-x86_64-2.11.3-a55a910.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "f0f091f8401cb1b4060fb3068fe7fc4afdc262b7") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.3/tiledb-linux-x86_64-2.11.3-a55a910.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "5c2f44d9ca9b34e61230fd0f0a763f0fffa04702") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.11.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.2/tiledb-windows-x86_64-2.11.2-6ad6f76.zip") - SET(TILEDB_DOWNLOAD_SHA1 "2a8a35782e73dce77c539c75db9a5736fc796ca8") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.2/tiledb-macos-x86_64-2.11.2-6ad6f76.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "55f4e4b478f44ce84abe467fe8ed3d7fffc7a1a0") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.2/tiledb-linux-x86_64-2.11.2-6ad6f76.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "e6840cccd280b5c57695c359033d56df38fb3f1b") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.11.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.1/tiledb-windows-x86_64-2.11.1-15a1161.zip") - SET(TILEDB_DOWNLOAD_SHA1 "f88420f4269aaac69a1dfb53e20f4848c407fa3f") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.1/tiledb-macos-x86_64-2.11.1-15a1161.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "95439b79e6f27cd9441403429161b8fc962e03ea") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.1/tiledb-linux-x86_64-2.11.1-15a1161.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "909a579420abcd490c54b486f10a1791499f30d8") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.11.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.0/tiledb-windows-x86_64-2.11.0-34e5dbc.zip") - SET(TILEDB_DOWNLOAD_SHA1 "ae60d7bea72472716cb85631c27f8d2ddc7d7dd7") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.0/tiledb-macos-x86_64-2.11.0-34e5dbc.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "56e865574404cb11cbd631c7c25ab0cfd413f9b3") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.11.0/tiledb-linux-x86_64-2.11.0-34e5dbc.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "c2eb91e352905728edfeb8dc0a6fbfd7bc69ef66") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.10.4") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.4/tiledb-windows-x86_64-2.10.4-f2b5d11.zip") - SET(TILEDB_DOWNLOAD_SHA1 "68b4a8a22a3964efb8ef254854cf7d73f4fa2c50") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.4/tiledb-macos-x86_64-2.10.4-f2b5d11.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "7dffaf2ca3e3585641f1b6840618f3563b821041") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.4/tiledb-linux-x86_64-2.10.4-f2b5d11.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "b765f9bd29dceaf29be9bca098c18cb74c7c1c37") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.10.3") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.3/tiledb-windows-x86_64-2.10.3-7a5d1cd.zip") - SET(TILEDB_DOWNLOAD_SHA1 "aa4030a55339d23ef25a0d9593dbad76e9246742") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.3/tiledb-macos-x86_64-2.10.3-7a5d1cd.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "897c17caec445f74114ac1c6e7d453d6f6d1c2e7") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.3/tiledb-linux-x86_64-2.10.3-7a5d1cd.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "49387ad851693a748d17d638a7d716ad62ac8706") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.10.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.2/tiledb-windows-x86_64-2.10.2-9ab84f9.zip") - SET(TILEDB_DOWNLOAD_SHA1 "fe6dac320afb08dd3f2f40f2705306f6eb245f8b") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.2/tiledb-macos-x86_64-2.10.2-9ab84f9.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "2be62a6c48c0bd7aeea786414aa32aef26fe6a64") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.2/tiledb-linux-x86_64-2.10.2-9ab84f9.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "03f6d4892f11cbd939660b78c923325396bd600f") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.10.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.1/tiledb-windows-x86_64-2.10.1-6535d4c.zip") - SET(TILEDB_DOWNLOAD_SHA1 "d0c5ed50f3c5215cae8a4dd82f756624e43252aa") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.1/tiledb-macos-x86_64-2.10.1-6535d4c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "68a43a62544ac849e1ca1b7c724f129dd7c8e50d") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.10.1/tiledb-linux-x86_64-2.10.1-6535d4c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "8c48232cd52934724b2b7a254ebad6c27e5a7683") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.9.4") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.4/tiledb-windows-x86_64-2.9.4-4e14c01.zip") - SET(TILEDB_DOWNLOAD_SHA1 "f5280ce74b52cdc5071e03c98f9251d635e27fa4") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.4/tiledb-macos-x86_64-2.9.4-4e14c01.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "cc1db32693de9d8311ed245889d2aa3bb3eb5df9") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.4/tiledb-linux-x86_64-2.9.4-4e14c01.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "74b72ecd136490bd5aeedc75502efef95d27293b") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.9.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.1/tiledb-windows-x86_64-2.9.1-1855f7c.zip") - SET(TILEDB_DOWNLOAD_SHA1 "515661B7121CF1E73F2A079143E9AE4D2DF54EDB") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.1/tiledb-macos-x86_64-2.9.1-1855f7c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "92C89D5FC5024CDF158E0534227C9037A1742919") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.9.1/tiledb-linux-x86_64-2.9.1-1855f7c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "EEC2066E0CEC7F9BABEA0B5CDFC03DCA834B9F5D") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.8.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.2/tiledb-windows-x86_64-2.8.2-6f382df.zip") - SET(TILEDB_DOWNLOAD_SHA1 "32D8EDDAACF017B99D96F04746484D5A23974E9D") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.2/tiledb-macos-x86_64-2.8.2-6f382df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "6852E8829117DCAB6E89067E4C1A26C7B151CCF2") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.2/tiledb-linux-x86_64-2.8.2-6f382df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "9AF5C8DB1B5E7D7F16E39976AA433544BC78E7EC") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.8.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.1/tiledb-windows-x86_64-2.8.1-e9a945c.zip") - SET(TILEDB_DOWNLOAD_SHA1 "2D759909A7693626388F6FD5528FFF2823CA8450") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.1/tiledb-macos-x86_64-2.8.1-e9a945c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "67F07C0EFA757FA0ECB3917ED2E60A56D477C5E9") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.1/tiledb-linux-x86_64-2.8.1-e9a945c.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "F60C8DFDDDF4EEDBFA414FE16F1ABE4A1A2D46F1") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.8.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.0/tiledb-windows-x86_64-2.8.0-f8efd39.zip") - SET(TILEDB_DOWNLOAD_SHA1 "EE28B243E1B025A1966643A4C924CB7485418285") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.0/tiledb-macos-x86_64-2.8.0-f8efd39.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "6E6033B26BCEA96B8A9D0948833958D5E8609E56") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.8.0/tiledb-linux-x86_64-2.8.0-f8efd39.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "8FE5E69D825829F10A4C35F529A9839DA0C254B0") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.7.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.7.1/tiledb-windows-x86_64-2.7.1-a942c71.zip") - SET(TILEDB_DOWNLOAD_SHA1 "FD3CD7C72A8C7056445B402622264CA3C3DA89CC") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.7.1/tiledb-macos-x86_64-2.7.1-a942c71.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "07074BAF703440C0A54D2EB41EB1F59C53A519F0") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.7.1/tiledb-linux-x86_64-2.7.1-a942c71.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "D61B01FDD6944F5AE3816426CF66350C54A2D737") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.6.4") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.4/tiledb-windows-x86_64-2.6.4-477532b.zip") - SET(TILEDB_DOWNLOAD_SHA1 "0A12236ACFB6F45CBCF1842464781A3F0F897E4E") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.4/tiledb-macos-x86_64-2.6.4-477532b.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "9783E3C3E574C146A42A673E8680D04B03D6D450") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.4/tiledb-linux-x86_64-2.6.4-477532b.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "5028B159F6EE6B8ABDE115EE3C431C6ABC396214") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.6.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.2/tiledb-windows-x86_64-2.6.2-bf10e49.zip") - SET(TILEDB_DOWNLOAD_SHA1 "4892B62C44CF897AC6C851703143C045D5AC3E82") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.2/tiledb-macos-x86_64-2.6.2-bf10e49.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "8312ECE1A7832E24E0B3B556B173B78255505E0E") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.2/tiledb-linux-x86_64-2.6.2-bf10e49.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "2596A6825D16A9E0119C8DB280EA7D4A64458072") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.6.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.1/tiledb-windows-x86_64-2.6.1-2f6b7f6.zip") - SET(TILEDB_DOWNLOAD_SHA1 "D59084906DC34E8B2416DCE7A203B125609286FB") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.1/tiledb-macos-x86_64-2.6.1-2f6b7f6.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "FC3B6642001C2AE036F8CFB990382F7BCFE27CD9") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.1/tiledb-linux-x86_64-2.6.1-2f6b7f6.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "F773AE6D4BFD9182CBA5F6879F595EAFBDA26006") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.6.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.0/tiledb-windows-x86_64-2.6.0-66f4b41.zip") - SET(TILEDB_DOWNLOAD_SHA1 "7FF516F55E19F460CE68EB1DCB52E17F72F845A3") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.0/tiledb-macos-x86_64-2.6.0-66f4b41.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "3C3A80AA2217B0C38E0FCCCA5C8FC4E63433E9FA") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.6.0/tiledb-linux-x86_64-2.6.0-66f4b41.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "57FDA45FD19F9E0DD7734DE2F1A8ECA427DE0B10") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.5.3") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.3/tiledb-windows-x86_64-2.5.3-dd6a41b.zip") - SET(TILEDB_DOWNLOAD_SHA1 "AE26920E9D7DEDCBAD3C0E5681DECD7A66D3DCF6") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.3/tiledb-macos-x86_64-2.5.3-dd6a41b.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "D29E2EE28AE9316FCB6710CA93C9E5D5A6C65795") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.3/tiledb-linux-x86_64-2.5.3-dd6a41b.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "AC28E99F0E1B445E72E2D2F0D84791CB3F40FF2E") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.5.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.2/tiledb-windows-x86_64-2.5.2-f9c058f.zip") - SET(TILEDB_DOWNLOAD_SHA1 "6DA1A3BC5BE2855EDD74CC521E6076A26F60ED19") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.2/tiledb-macos-x86_64-2.5.2-f9c058f.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "581168DF22F0F507DF87B8E52CEFD51630A99A70") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.2/tiledb-linux-x86_64-2.5.2-f9c058f.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "904D28E5480E0AFA04AE772D75AF737AF2ACC5E5") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.5.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.1/tiledb-windows-x86_64-2.5.1-5b65a96.zip") - SET(TILEDB_DOWNLOAD_SHA1 "D08658D08FAB8DA1C6D21C6C7AF68B02D9D5D9E7") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.1/tiledb-macos-x86_64-2.5.1-5b65a96.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "66521CCF7B5E6FE9BE29C0107E8BB433BB50CFAD") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.5.1/tiledb-linux-x86_64-2.5.1-5b65a96.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "D276396E0242C64D54479018517AD93206DC9E1B") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.4.4") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.4/tiledb-windows-x86_64-2.4.4-7257605.zip") - SET(TILEDB_DOWNLOAD_SHA1 "4E85442762F2B00761BDF08ADF47B2DF849D5B49") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.4/tiledb-macos-x86_64-2.4.4-7257605.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "188A5633E3E316782271B3BE770C8ABB92219A11") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.4/tiledb-linux-x86_64-2.4.4-7257605.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "F7A3FB9D72E17941103EC176B7B1F7F4770F71F9") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.4.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.2/tiledb-windows-x86_64-2.4.2-81a0286.zip") - SET(TILEDB_DOWNLOAD_SHA1 "2A1CE6FCDE6C2E6A744EB6F68914121EDFB33B94") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.2/tiledb-macos-x86_64-2.4.2-81a0286.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "54B13C8D6F57E2B8AF310F5C0331F8D95B0BEEA1") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.2/tiledb-linux-x86_64-2.4.2-81a0286.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "035AD2D81A2ED3B84B00125586ED68F8D75958E8") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.4.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.0/tiledb-windows-x86_64-2.4.0-baf64e1.zip") - SET(TILEDB_DOWNLOAD_SHA1 "CE9247503A7DF2A876717FD091CD23BBE1C32593") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.0/tiledb-macos-x86_64-2.4.0-baf64e1.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "78D74D6D3C3A259087CA00707554AC8545AA9311") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.4.0/tiledb-linux-x86_64-2.4.0-baf64e1.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "8FB19EFFA55BF4E7DAA38205C0C9CE32890CC821") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.3.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.0/tiledb-windows-2.3.0-a87da7f-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "CBE6F41108B49DA6ECA516A9A12BAD2064BD2240") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.0/tiledb-macos-2.3.0-a87da7f-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "BFA0247199BD6E2E08104534B45FF83123B7D4AB") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.0/tiledb-linux-2.3.0-a87da7f-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "15592594E38560A55FD7E3B7A052D9FF79F59A49") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.3.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.1/tiledb-windows-x86_64-2.3.1-6d36169.zip") - SET(TILEDB_DOWNLOAD_SHA1 "FF1DB0E556B2922D7DD0C2D7ECE6FDD03AEA1258") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.1/tiledb-macos-x86_64-2.3.1-6d36169.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "E9086167F6B9B5B304F3A724BAC08E9128AA7913") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.1/tiledb-linux-x86_64-2.3.1-6d36169.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "DD65523F22632161B43E2263AD6080F338F759D1") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.3.2") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.2/tiledb-windows-x86_64-2.3.2-4b563fe.zip") - SET(TILEDB_DOWNLOAD_SHA1 "5C0F8C7FDBD927151DFA927129ED87B7C073C5EE") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.2/tiledb-macos-x86_64-2.3.2-4b563fe.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "7610017E1835903286942C388FE58BF55CF8EC5C") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.2/tiledb-linux-x86_64-2.3.2-4b563fe.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "06360C3F6D6B96B2BE8038DE6E56ABB3C1A00E43") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.3.3") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.3/tiledb-windows-x86_64-2.3.3-9336d3f.zip") - SET(TILEDB_DOWNLOAD_SHA1 "7C777FC98E40E72400A590EF8EB9C23046D18689") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.3/tiledb-macos-x86_64-2.3.3-9336d3f.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "AE0D1606DAA6D984333E06D42DF25044BF7E347E") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.3/tiledb-linux-x86_64-2.3.3-9336d3f.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "803368D31C2EADF1B866A362CE0514073F84DAD9") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.3.4") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.4/tiledb-windows-x86_64-2.3.4-e19855e.zip") - SET(TILEDB_DOWNLOAD_SHA1 "C0F3D834519B2FB7D58CFB5BC8EB03F5004EDFAA") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.4/tiledb-macos-x86_64-2.3.4-e19855e.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "7B674AD6DE878017B400F0F3DCC3B8D6CF9982B3") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.3.4/tiledb-linux-x86_64-2.3.4-e19855e.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "B2BBDCBBAEF341AC7E14D428A2302D06BC899CF0") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.9") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.9/tiledb-windows-2.2.9-dc3bb54-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "41D72B04A2C503AEEEB45A893DD82B071C732D45") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.9/tiledb-macos-2.2.9-dc3bb54-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "6E6A04351A6DDA4C22BE15B639F48931423F3B86") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.9/tiledb-linux-2.2.9-dc3bb54-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "CB0AD1D6D942F926260B580F2C3073740DEAAD9F") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.8") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.8/tiledb-windows-2.2.8-6e7a5a2-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "54633F19A142FFB507E030633C8C713FB529169E") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.8/tiledb-macos-2.2.8-6e7a5a2-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "0037958A043F21B9392E3261C7495F81C6780C5B") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.8/tiledb-linux-2.2.8-6e7a5a2-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "C8CEF21926EE9860B307ACD200961DB0B5E693A3") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.7") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.7/tiledb-windows-2.2.7-a788ce5-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "67878e0274db413d22b738a45b6cc228badf084e") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.7/tiledb-macos-2.2.7-a788ce5-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "e1e0c78a3cdd25c7f9357125b67871fcfd5a8bfa") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.7/tiledb-linux-2.2.7-a788ce5-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "ad3ecd762fbd5ff6adf2fada5f923d2056a33a2f") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.6") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.6/tiledb-windows-2.2.6-b6926bc-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "700e5cdbaa77b00d31f498dbab353b06d4890ae7") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.6/tiledb-macos-2.2.6-b6926bc-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "348d56dede19a22e351571f1b5bdc5c1cba70684") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.6/tiledb-linux-2.2.6-b6926bc-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "198c84e74638d46949aad63881902eff095282f9") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.3") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.3/tiledb-windows-2.2.3-dbaf5ff-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "82eabce749f070f3a48095e229ec5f3389beee2f") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.3/tiledb-macos-2.2.3-dbaf5ff-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "8b07960e274d5eb156279edafc6f6ebc5d219ec8") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.3/tiledb-linux-2.2.3-dbaf5ff-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "817dfcbfc873a1728a66525d8c275e66d6742300") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.2.1") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.1/tiledb-windows-2.2.1-4744a3f-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "6b30dbd909ba92e78b9805434e316b5b93765442") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.1/tiledb-macos-2.2.1-4744a3f-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "66d81a4efba76966a8e37786f79b9825588e1e92") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.2.1/tiledb-windows-2.2.1-4744a3f-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "79f671ab8af89e6b2f270c59bbda4af0b973c2fc") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.1.0") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.1.0/tiledb-windows-2.1.0-1073faa-full.zip") - SET(TILEDB_DOWNLOAD_SHA1 "1d3e5437d105822b29a0881f5599512a59d50120") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.1.0/tiledb-macos-2.1.0-1073faa-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "bbce94181f3cf1ea279dd255f596dd3e90dcd7cb") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.1.0/tiledb-linux-2.1.0-1073faa-full.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "b748a1bb5aec052d9ec7c2ad4b39b50ae100cd9b") - endif() -elseif(${TILEDB_VERSION} STREQUAL "2.0.7") - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.0.7/tiledb-windows-2.0.7-2058d3d.zip") - SET(TILEDB_DOWNLOAD_SHA1 "4E3BEED60F2F29B31DDA04CAA21DDE22B96B77B9") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.0.7/tiledb-macos-2.0.7-2058d3d.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "B5CF25FC57B89009D3F5E21AC902C7642BA295E6") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.0.7/tiledb-linux-2.0.7-2058d3d.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "556CCD6265A9F62884A8F798753625D7352ACCD5") - endif() -else() - if (WIN32) # Windows - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-windows-x86_64-2.12.0-ac8a0df.zip") - SET(TILEDB_DOWNLOAD_SHA1 "b82ed9593a04d2e0950d4267a77412055fce320a") - elseif(APPLE) # OSX - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-macos-x86_64-2.12.0-ac8a0df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "6811578e847f6e4a1e0ecd16229970f4d4e7ffde") - else() # Linux - SET(TILEDB_DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.12.0/tiledb-linux-x86_64-2.12.0-ac8a0df.tar.gz") - SET(TILEDB_DOWNLOAD_SHA1 "23e6ed9c397096a2368974de5eaccb0b3e66ce0b") - endif() -endif() - -message(STATUS "TILEDB_DOWNLOAD_URL: ${TILEDB_DOWNLOAD_URL}") -message(STATUS "TILEDB_DOWNLOAD_SHA1: ${TILEDB_DOWNLOAD_SHA1}") - -endif() - -### fetch prebuilt tiledb -if(${TILEDB_VERSION} MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$") - - ##fetch tiledb - FetchContent_Declare( - tiledb_prebuilt - URL ${TILEDB_DOWNLOAD_URL} - URL_HASH SHA1=${TILEDB_DOWNLOAD_SHA1} - ) - FetchContent_GetProperties(tiledb_prebuilt) - - if(NOT tiledb_prebuilt_POPULATED) - FetchContent_Populate(tiledb_prebuilt) - message(STATUS "tiledb_prebuilt_SOURCE_DIR:${tiledb_prebuilt_SOURCE_DIR}") - message(STATUS "tiledb_prebuilt_BINARY_DIR:${tiledb_prebuilt_BINARY_DIR}") - endif() - include(${tiledb_prebuilt_SOURCE_DIR}/lib/cmake/TileDB/TileDBConfig.cmake) - - #get_target_property(TILEDB_BINARY_DIR TileDB::tiledb_shared BINARY_DIR) - #get_target_property(TILEDB_IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE TileDB::tiledb_shared IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE) - get_target_property(TILEDB_IMPORTED_LOCATION_RELEASE TileDB::tiledb_shared IMPORTED_LOCATION_RELEASE) - get_filename_component(TILEDB_RELEASE_BINARY_DIR ${TILEDB_IMPORTED_LOCATION_RELEASE} PATH) - message(STATUS "TILEDB_BINARY_DIR:${TILEDB_RELEASE_BINARY_DIR}") - #message(STATUS "TILEDB dependent:${TILEDB_IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE}") - #message(STATUS "TILEDB location release:${TILEDB_IMPORTED_LOCATION_RELEASE}") - #message(STATUS "TILEDB_RELEASE_BINARY_DIR:${TILEDB_RELEASE_BINARY_DIR}") - - file(GLOB TILEDB_BIN_FILES_AND_DIRS "${TILEDB_RELEASE_BINARY_DIR}/*") - -else() - message(STATUS "start to build tiledb from source") - FetchContent_Declare( - tiledb - GIT_REPOSITORY https://github.com/TileDB-Inc/TileDB.git - GIT_TAG ${TILEDB_GIT_TAG} - ) - FetchContent_GetProperties(tiledb) - if(NOT tiledb_POPULATED) - FetchContent_Populate(tiledb) - message(STATUS "tiledb_SOURCE_DIR:${tiledb_SOURCE_DIR}, cmake_generator:${CMAKE_GENERATOR}") - message(STATUS "tiledb_BINARY_DIR:${tiledb_BINARY_DIR}") - set(SUPERBUILD OFF) - message("start to build tiledb at ${tiledb_BINARY_DIR}, buildtype:${CMAKE_BUILD_TYPE}...") - if(WIN32) - execute_process( - COMMAND - "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" -A x64 - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DTILEDB_S3=${TILEDB_S3} - -DTILEDB_AZURE=${TILEDB_AZURE} - -DTILEDB_TESTS=OFF - -DTILEDB_WERROR=OFF - ${tiledb_SOURCE_DIR} - WORKING_DIRECTORY - ${tiledb_BINARY_DIR} - ) - else() - execute_process( - COMMAND - "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DTILEDB_S3=${TILEDB_S3} - -DTILEDB_AZURE=${TILEDB_AZURE} - -DTILEDB_TESTS=OFF - -DTILEDB_WERROR=OFF - ${tiledb_SOURCE_DIR} - WORKING_DIRECTORY - ${tiledb_BINARY_DIR} - ) - endif() - - message("start to build tiledb at ${tiledb_BINARY_DIR} ...") - execute_process( - COMMAND - "${CMAKE_COMMAND}" --build . --config Release - WORKING_DIRECTORY - ${tiledb_BINARY_DIR} - ) - - message("start to build install-tiledb at ${tiledb_BINARY_DIR} ...") - execute_process( - COMMAND - "${CMAKE_COMMAND}" --build . --target install-tiledb --config Release - WORKING_DIRECTORY - ${tiledb_BINARY_DIR} - ) - - endif() - - message("start to include TileDBConfig.cmake") - include( ${CMAKE_INSTALL_LIBDIR}/cmake/TileDB/TileDBConfig.cmake) - - file(GLOB TILEDB_BIN_FILES_AND_DIRS "${CMAKE_INSTALL_PREFIX}/bin/*") - -endif() - - -### copy files from /bin to /lib -foreach(item ${TILEDB_BIN_FILES_AND_DIRS}) - if(IS_DIRECTORY "${item}") - LIST(APPEND TILEDB_BIN_DIRS "${item}") - else() - LIST(APPEND TILEDB_BIN_FILES "${item}") - endif() -endforeach() - -message(STATUS "TILEDB install ${TILEDB_BIN_FILES} to lib directory:${CMAKE_INSTALL_BINDIR}") -install(FILES ${TILEDB_BIN_FILES} - DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - -if(TILEDB_BIN_DIRS) - message(STATUS "TILEDB install ${TILEDB_BIN_DIRS} to lib directory:${CMAKE_INSTALL_BINDIR}") - install( DIRECTORY ${TILEDB_BIN_DIRS} - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) -endif() diff --git a/examples/TileDB.CSharp.Example/TileDB.CSharp.Example.csproj b/examples/TileDB.CSharp.Example/TileDB.CSharp.Example.csproj index 9be9c503..8253ac83 100644 --- a/examples/TileDB.CSharp.Example/TileDB.CSharp.Example.csproj +++ b/examples/TileDB.CSharp.Example/TileDB.CSharp.Example.csproj @@ -5,6 +5,7 @@ Major TileDB.CSharp.Examples net5.0;net6.0 + true diff --git a/examples/bindings/QuickstartSparseString/QuickstartSparseString.csproj b/examples/bindings/QuickstartSparseString/QuickstartSparseString.csproj index 777be6ea..cf99b86b 100644 --- a/examples/bindings/QuickstartSparseString/QuickstartSparseString.csproj +++ b/examples/bindings/QuickstartSparseString/QuickstartSparseString.csproj @@ -5,6 +5,7 @@ Exe Major net5.0;net6.0 + true diff --git a/nuget.config b/nuget.config new file mode 100644 index 00000000..d5049088 --- /dev/null +++ b/nuget.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/scripts/nuget/GenerateNuGetPackages.proj b/scripts/nuget/GenerateNuGetPackages.proj new file mode 100644 index 00000000..f06b65cb --- /dev/null +++ b/scripts/nuget/GenerateNuGetPackages.proj @@ -0,0 +1,118 @@ + + + ./temp + ./packages + $(TempDir)/runtime.json + ./TileDB.Native.proj + ./TileDB.Native.runtime.template.proj + + + + 0.0.0-local + $(Version)+$(VersionTag) + + Local. + + + + + + + + + + + + + + + + + + + + + + + + + + https://github.com/TileDB-Inc/TileDB/releases/download/$(Version)/TileDB-%(NativePlatform.Identity)-$(Version)-$(VersionTag).%(NativePlatform.ArchiveExtension) + $(TempDir)/%(NativePlatform.Identity) + + + + + + + + + + + + + + + + + + + + {"runtimes": {@(NativePlatform-> '"%(RuntimeId)":{"$(PackageIdPrefix)TileDB.Native":{"$(PackageIdPrefix)TileDB.Native.runtime.%(RuntimeId)":"$(Version)"}}', ',')}} + + + + + + + + + + + + + + + + + + diff --git a/scripts/nuget/README.md b/scripts/nuget/README.md new file mode 100644 index 00000000..74d46324 --- /dev/null +++ b/scripts/nuget/README.md @@ -0,0 +1,44 @@ +# TileDB native NuGet package generator + +This directory contains a script that: + +* Downloads the Core binaries from GitHub Releases. +* Creates one NuGet package for each supported platform. +* Creates one NuGet metapackage that routes to the packages above according to the platform. + +The script's source is in `GenerateNuGetPackages.proj`. The other files specify the properties of the packages. + +## Usage + +``` +dotnet pack ./GenerateNuGetPackages.proj -p:Version= -p:VersionTag= +``` + +> `version-tag` is the seven-character commit hash of the release. + +The packages will be written in the `packages` subdirectory. You can change the output path with the `-p:OutDir=` option. + +The script is incremental, which means that it will try to avoid doing work that is already done. To be extra sure that no stale data is being used, run `dotnet clean` before packing. + +## Supporting new platforms + +At the beginning of the file there is an `ItemGroup` that specifies `NativePlatform` items. To add support for a new platform you have to add a new item to this group. These are the metadata you have to define: + +|Name|Value| +|----|-----| +|`Include` (referred in the script as `Identity`; technically not part of metadata)|The platform's name as written in the GitHub Releases.| +|`RuntimeId`|The platform's [.NET Runtime Identifier](https://learn.microsoft.com/en-us/dotnet/core/rid-catalog).| +|`LibraryPath`|The native library's path, relative from the downloaded GitHub Releases artifact.| +|`ArchiveExtension`|The artifact archive's extension, without the leading dot. Optional, defaults to `tar.gz`.| + +## Development packages + +The script also supports generating development editions of the packages. This is used in nightly builds to allow testing with the binaries built from the `dev` and `release` branches. They have `Local.` prepended to their ID and their version is always `0.0.0-local+`. The build metadata that come after the `+` are used for informative purposes and are not a required part of the package's version. + +Grabbing the development packages from the nightly build's artifacts is preferred over manually creating them, but if you want to (for example to test Core binaries from a different branch), you can follow these steps: + +1. Build the Core. +2. Copy the Core's `dist` folder to the `temp` subdirectory of this repository, renaming it to the _GitHub Releases_ name of the platform. +3. Run `dotnet pack -p:DevelopmentBuild=true -p:VersionTag=`. `VersionTag` is optional. + +When building development packages you don't have to include the artifacts for all platforms; the script will skip those whose artifacts do not exist. diff --git a/scripts/nuget/TileDB.Native.nuspec b/scripts/nuget/TileDB.Native.nuspec new file mode 100644 index 00000000..6b790973 --- /dev/null +++ b/scripts/nuget/TileDB.Native.nuspec @@ -0,0 +1,20 @@ + + + + $idPrefix$TileDB.Native + $version$ + TileDB Inc + false + MIT + logo.png + https://tiledb.com/products/tiledb-embedded/ + + The TileDB Embedded library. This is a metapackage that will route to the appropriate native package based on the runtime identifier. + https://github.com/TileDB-Inc/TileDB/releases + tiledb + + + + + + diff --git a/scripts/nuget/TileDB.Native.proj b/scripts/nuget/TileDB.Native.proj new file mode 100644 index 00000000..4024361a --- /dev/null +++ b/scripts/nuget/TileDB.Native.proj @@ -0,0 +1,10 @@ + + + true + false + true + netstandard2.0 + TileDB.Native.nuspec + idPrefix=$(PackageIdPrefix);version=$(Version) + + diff --git a/scripts/nuget/TileDB.Native.runtime.template.nuspec b/scripts/nuget/TileDB.Native.runtime.template.nuspec new file mode 100644 index 00000000..2c4a4760 --- /dev/null +++ b/scripts/nuget/TileDB.Native.runtime.template.nuspec @@ -0,0 +1,20 @@ + + + + $idPrefix$TileDB.Native.runtime.$rid$ + $version$ + TileDB Inc + false + MIT + logo.png + https://tiledb.com/products/tiledb-embedded/ + + Native binaries of TileDB Embedded for $rid$. + https://github.com/TileDB-Inc/TileDB/releases + tiledb + + + + + + diff --git a/scripts/nuget/TileDB.Native.runtime.template.proj b/scripts/nuget/TileDB.Native.runtime.template.proj new file mode 100644 index 00000000..5684114f --- /dev/null +++ b/scripts/nuget/TileDB.Native.runtime.template.proj @@ -0,0 +1,10 @@ + + + true + false + true + netstandard2.0 + TileDB.Native.runtime.template.nuspec + idPrefix=$(PackageIdPrefix);rid=$(RuntimeId);version=$(Version);nativelib=$(NativeLibraryPath) + + diff --git a/sources/NuGet.props b/sources/NuGet.props new file mode 100644 index 00000000..f947a0ec --- /dev/null +++ b/sources/NuGet.props @@ -0,0 +1,12 @@ + + + TileDB Inc + MIT + logo.png + https://tiledb.com/products/tiledb-embedded/ + tiledb + + + + + diff --git a/sources/TileDB.CSharp/README.md b/sources/TileDB.CSharp/README.md new file mode 100644 index 00000000..9d3cb415 --- /dev/null +++ b/sources/TileDB.CSharp/README.md @@ -0,0 +1,42 @@ +# TileDB.CSharp + +This package provides a C# interface to the [TileDB Embedded](https://tiledb.com/products/tiledb-embedded) storage engine. + +## Usage + +After installing the package, see [the official documentation](https://docs.tiledb.com/main/) and [the C# example project](https://github.com/TileDB-Inc/TileDB-CSharp/tree/main/examples/TileDB.CSharp.Example) to learn how to use it. + +### Resolving `DllNotFoundException`s + +To reduce the download size, the TileDB Embedded native library is downloaded only on [RID](https://learn.microsoft.com/en-us/dotnet/core/rid-catalog)-specific builds. If you are getting `DllNotFoundException`s that the library `tiledb` is not found, you have to specify an RID, and you will get a warning if you don't. There are many ways to do it: + +* + __From the project file:__ + + Add one of the following properties to your project: + + ```xml + + win-x64 + + true + + ``` + +* + __From the .NET CLI:__ + + When building or publishing a project you can specify the `-r ` option to provide an RID. + +> Consult the .NET documentation for more information. + +Native binaries are provided for the following RIDs, and all that derive from them such as `win10-x64` or `ubuntu-x64`: + +* `win-x64` +* `linux-x64` +* `osx-x64` +* `osx-arm64` + +### Patching TileDB Embedded + +You can update to a newer patch version of TileDB Embedded by explicitly specifying a version of the [`TileDB.Native`](https://nuget.org/packages/TIleDB.Native) package in your project. diff --git a/sources/TileDB.CSharp/TileDB.CSharp.csproj b/sources/TileDB.CSharp/TileDB.CSharp.csproj index 9dba3961..82b79f5b 100644 --- a/sources/TileDB.CSharp/TileDB.CSharp.csproj +++ b/sources/TileDB.CSharp/TileDB.CSharp.csproj @@ -1,18 +1,24 @@ - + + net5.0 + false true enable - Major TileDB.CSharp 5.3.0 - TileDB.CSharp.nuspec - version=$(Version) + C# wrapper of the TileDB Embedded universal data engine. + README.md ./lib - + + + + + + diff --git a/sources/TileDB.CSharp/TileDB.CSharp.nuspec b/sources/TileDB.CSharp/TileDB.CSharp.nuspec deleted file mode 100644 index e808b9d6..00000000 --- a/sources/TileDB.CSharp/TileDB.CSharp.nuspec +++ /dev/null @@ -1,29 +0,0 @@ - - - - TileDB.CSharp - $version$ - TileDB Inc - false - MIT - logo.png - https://github.com/TileDB-Inc/TileDB-CSharp - CSharp wrapper of TileDB universal data engine - This package is the csharp wrapper of TileDB 2.12.0. - tiledb - - - - - - - - - - - - - - - - diff --git a/sources/TileDB.CSharp/TileDB.CSharp.targets b/sources/TileDB.CSharp/TileDB.CSharp.targets deleted file mode 100644 index d402a0e6..00000000 --- a/sources/TileDB.CSharp/TileDB.CSharp.targets +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - PreserveNewest - tiledb.dll - false - - - - - - PreserveNewest - libtiledb.so - false - - - - - - PreserveNewest - libtiledb.dylib - false - - - diff --git a/sources/TileDB.CSharp/build/TileDB.CSharp.targets b/sources/TileDB.CSharp/build/TileDB.CSharp.targets new file mode 100644 index 00000000..8d66cf70 --- /dev/null +++ b/sources/TileDB.CSharp/build/TileDB.CSharp.targets @@ -0,0 +1,7 @@ + + + + + diff --git a/sources/TileDB.CSharp/buildTransitive/TileDB.CSharp.targets b/sources/TileDB.CSharp/buildTransitive/TileDB.CSharp.targets new file mode 100644 index 00000000..19ca85dc --- /dev/null +++ b/sources/TileDB.CSharp/buildTransitive/TileDB.CSharp.targets @@ -0,0 +1,3 @@ + + + diff --git a/sources/TileDB.CSharp/runtimes/linux-x64/native/README.md b/sources/TileDB.CSharp/runtimes/linux-x64/native/README.md deleted file mode 100644 index d336705d..00000000 --- a/sources/TileDB.CSharp/runtimes/linux-x64/native/README.md +++ /dev/null @@ -1 +0,0 @@ -# this directory is for linux native library diff --git a/sources/TileDB.CSharp/runtimes/osx-x64/native/README.md b/sources/TileDB.CSharp/runtimes/osx-x64/native/README.md deleted file mode 100644 index 141f426e..00000000 --- a/sources/TileDB.CSharp/runtimes/osx-x64/native/README.md +++ /dev/null @@ -1 +0,0 @@ -# this directory is for macos native library diff --git a/sources/TileDB.CSharp/runtimes/win-x64/native/README.md b/sources/TileDB.CSharp/runtimes/win-x64/native/README.md deleted file mode 100644 index 37abea99..00000000 --- a/sources/TileDB.CSharp/runtimes/win-x64/native/README.md +++ /dev/null @@ -1 +0,0 @@ -# this directory is for windows native library diff --git a/tests/TileDB.CSharp.Test.NuGet/TileDB.CSharp.Test.NuGet.csproj b/tests/TileDB.CSharp.Test.NuGet/TileDB.CSharp.Test.NuGet.csproj deleted file mode 100644 index e05ae2b2..00000000 --- a/tests/TileDB.CSharp.Test.NuGet/TileDB.CSharp.Test.NuGet.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - false - enable - Major - TileDB.CSharp.Test - net5.0;net6.0 - - - - - - - - - - - diff --git a/tests/TileDB.CSharp.Test.NuGet/nuget.config b/tests/TileDB.CSharp.Test.NuGet/nuget.config deleted file mode 100644 index b16bbf21..00000000 --- a/tests/TileDB.CSharp.Test.NuGet/nuget.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj b/tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj index 3a25a685..a0ccd8d6 100644 --- a/tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj +++ b/tests/TileDB.CSharp.Test/TileDB.CSharp.Test.csproj @@ -5,13 +5,14 @@ Major TileDB.CSharp.Test net5.0;net6.0 + true - - - - + + + +