Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace Makefile with CMake #293

Merged
merged 35 commits into from
Oct 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
756bf80
[rust] add remove test
weedge Oct 18, 2023
8eddfff
Make: Allow forwarding `CXX_FLAGS`, used for MacOS
ashvardanian Oct 22, 2023
c99a5aa
Make: Link to different C++ libs
ashvardanian Oct 22, 2023
a628051
Merge branch 'main' into main-dev
ashvardanian Oct 22, 2023
789932c
Make: Switch all packaging
ashvardanian Oct 22, 2023
84a9bd3
Merge branch 'main-dev' of https://github.com/unum-cloud/usearch into…
ashvardanian Oct 22, 2023
8e7a29f
Make: Deprecate the Makefile
ashvardanian Oct 22, 2023
aeb97e1
Make: Prepare JavaDoc in Gradle
ashvardanian Oct 22, 2023
58901e6
Fix: Avoid using `key_t` in global scope
ashvardanian Oct 22, 2023
89b7b83
Fix: Access missing `self._metric_jit.kind` member
ashvardanian Oct 22, 2023
e5cfeba
Fix: Constructing with missing file path
ashvardanian Oct 22, 2023
6f52cdf
Test: Parameterize with different key values
ashvardanian Oct 22, 2023
64f7365
Make: Log hardware caps
ashvardanian Oct 22, 2023
baa8c29
Merge branch 'test/add_remove' into main-dev
ashvardanian Oct 22, 2023
76301f4
Improve: Newer SimSIMD version
ashvardanian Oct 22, 2023
281e23a
Make: Freeze OS versions
ashvardanian Oct 23, 2023
3d5fe24
Merge branch 'main-dev' of https://github.com/unum-cloud/usearch into…
ashvardanian Oct 23, 2023
2ef69d3
Make: Custom output directories
ashvardanian Oct 23, 2023
c776845
Merge branch 'main-dev' of https://github.com/unum-cloud/usearch into…
ashvardanian Oct 23, 2023
37b65bf
Make: Combine Python and C tests
ashvardanian Oct 23, 2023
325fe27
Make: Pass library path to GoLang runtime
ashvardanian Oct 23, 2023
c82901a
Make: Support PyPi builds with Clang
ashvardanian Oct 23, 2023
8bb198d
Fix: Missing symbols for Windows builds
ashvardanian Oct 23, 2023
b3c3ea5
Improve: Add linking directory path
ashvardanian Oct 23, 2023
a441f6f
Make: Upgrade to Clang 16
ashvardanian Oct 23, 2023
2c157a9
Make: Regroup ObjC/Swift/Rust tests
ashvardanian Oct 23, 2023
5a89f29
Make: Install Clang 16
ashvardanian Oct 23, 2023
edb9021
Make: Log tests
ashvardanian Oct 23, 2023
6cdd7f2
Fix: `std::nullptr_t` for Clang
ashvardanian Oct 23, 2023
eccaad8
Make: Shorten .NET configs
ashvardanian Oct 23, 2023
554346a
Improve: Caching hardware SIMD capabilities
ashvardanian Oct 24, 2023
ed61f4a
Make: Windows shared lib is `usearch_c.dll`
ashvardanian Oct 24, 2023
14737e7
Fix: Unreasonable `malloc` size
ashvardanian Oct 24, 2023
864d07f
Refactor: Remove special case in C++ tests
ashvardanian Oct 24, 2023
86b70a0
Make: Prepend Windows library targets with "lib"
ashvardanian Oct 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Ignore all files without an extension
*
!/**/
!*.*

# Temporary files
.DS_Store
*.fbin
*.ibin
datasets
bin
*.usearch
.cache

# C++ builds
build
build_release
build_debug
_deps
CMakeCache.txt
CMakeFiles
cmake_install.cmake

# Profiling with GProf and `perf` on Linux
gmon.out
perf.data

# Python wrappers
__pycache__
*.egg-info
dist/
wheelhouse/

# Python Environments
venv/

# JS wrappers
package-lock.json
node_modules/

# Rust builds
Cargo.lock
target/

# Java bindings
.gradle
*.class

# ObjC and Swift
.build
.swiftpm

# C# builds
csharp/**/[Bb]in/
csharp/**/[Oo]bj/
csharp/lib
csharp/packages

# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Allow golang go.mod
!go.mod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
8 changes: 6 additions & 2 deletions .github/workflows/Dockerfile.libs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@ RUN apt-get update && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

ENV CC=gcc-12
ENV CXX=g++-12

COPY . .

RUN cd c && make libusearch_c.so
RUN cmake -DCMAKE_BUILD_TYPE=Release -DUSEARCH_BUILD_LIB_C=1 -DUSEARCH_BUILD_TEST_CPP=0 -DUSEARCH_BUILD_BENCH_CPP=0 -B ./build_release
RUN cmake --build ./build_release --config Release

RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
export arch="amd"; \
Expand All @@ -26,7 +30,7 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
mkdir -p usearch_linux_"$arch"_"$version"/usr/local/lib && \
mkdir usearch_linux_"$arch"_"$version"/usr/local/include && \
cp c/usearch.h usearch_linux_"$arch"_"$version"/usr/local/include/ && \
cp c/libusearch_so.a usearch_linux_"$arch"_"$version"/usr/local/lib/ && \
cp build_release/libusearch_c.so usearch_linux_"$arch"_"$version"/usr/local/lib/ && \
echo "Package: usearch\nVersion: $version\nMaintainer: Ash Vardanian\nArchitecture: "$arch"\nDescription: Faster & Smaller Single-File Search Engine for Vectors & Texts" > usearch_linux_"$arch"_"$version"/DEBIAN/control && \
dpkg-deb --build usearch_linux_"$arch"_"$version" && \
sshpass -p "$user_pass" scp -o StrictHostKeyChecking=no usearch_linux_"$arch"_"$version".deb "$user_name"@"$docker_ip":/home/$user_name/work/usearch/usearch/
Loading