fix: build on windows #93
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This library previously would not build on Windows. There are a few tricky parts that are not the fault of
faiss-rs(ex.: you need to setMKL_ROOTenv variable because CMake on Windows cannot locate Intel MKL automatically, and then it fails because no BLAS) but are maybe worth documenting. This PR is about fixing the library search path, though.When I compile FAISS with CMake & MSVC on Windows, I get a build folder structure that looks like this:
But the build script was expecting
faiss_c.libto be directly inside ofbuild\c_api, so the build fails.I also got rid of the part that explicitly sets
CMAKE_BUILD_TYPEtoRelease. The default behavior of thecmakecrate is to do builds that follow the cargo build mode automatically, and setting theCMAKE_BUILD_TYPEcauses the configuration and the build stages to use different profiles. This could lead to confusion.