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

On windows, install prefix should be LIBRARY_PREFIX #30

Closed
sdebionne opened this issue Apr 9, 2019 · 3 comments · Fixed by #32
Closed

On windows, install prefix should be LIBRARY_PREFIX #30

sdebionne opened this issue Apr 9, 2019 · 3 comments · Fixed by #32
Labels

Comments

@sdebionne
Copy link
Contributor

Unix-style packages on Windows, which are usually statically linked to executables, are built in a special Library directory under the build prefix.

See Environment variables set during the build process

@ax3l
Copy link
Member

ax3l commented Jun 7, 2019

Are you really sure they are installed in the wrong location?
I use the conda pybind11 package in my feedstock for windows as well and everything is found: https://github.com/conda-forge/openpmd-api-feedstock

The location here looks good as well:
https://ci.appveyor.com/project/conda-forge/pybind11-feedstock/branch/master/job/fqf8t9w0e2y8r9d5

Install the project...
-- Install configuration: "Debug"
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/attr.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/buffer_info.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/cast.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/chrono.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/common.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/complex.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/class.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/common.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/descr.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/init.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/internals.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/detail/typeid.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/eigen.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/embed.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/eval.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/functional.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/iostream.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/numpy.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/operators.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/options.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/pybind11.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/pytypes.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/stl.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/include/pybind11/stl_bind.h
-- Installing: C:/bld/pybind11_1559872491309/_h_env/share/cmake/pybind11/pybind11Config.cmake
-- Installing: C:/bld/pybind11_1559872491309/_h_env/share/cmake/pybind11/pybind11ConfigVersion.cmake
-- Installing: C:/bld/pybind11_1559872491309/_h_env/share/cmake/pybind11/FindPythonLibsNew.cmake
-- Installing: C:/bld/pybind11_1559872491309/_h_env/share/cmake/pybind11/pybind11Tools.cmake
-- Installing: C:/bld/pybind11_1559872491309/_h_env/share/cmake/pybind11/pybind11Targets.cmake

Unix-style packages on Windows, which are usually statically linked to executables ...

Please be aware that pybind11 is not a unix-style, pre-compiled library but just a header-only include collection.

Furthermore, I think the section of the docs you link might only apply for cygwin builds (we are doing VS/MSVC builds in conda-forge).

Are you experiencing any issue using the package or do you just wonder about the notes in the docs?

@sdebionne
Copy link
Contributor Author

I might have read this note on the doc to quickly but I open this issue because my downstream CMake project could not find pybind11.
The core reason is my CMAKE_PREFIX_PATH is pointing to the %CONDA_PREFIX%\Library folder of my environment. What you suggest is to have both the root and Library folder CMAKE_PREFIX_PATH=%CONDA_PREFIX%:%CONDA_PREFIX%\Library. That might be correct, but pybind11 would be the first package that I come across that install headers directly in %CONDA_PREFIX% on Windows. What is so special with header-only libraries that justifies that their headers should be installed in a different place?

@ax3l
Copy link
Member

ax3l commented Jun 7, 2019

Thanks for the clarification.
Yes, it's not more or less special than other libs - it's just not pre-compiled. I had the impression the docs are probably just for a corner case (cygwin), but if you see other conda-forge windows packages to be installed within %CONDA_PREFIX%\Library as well and your problems originate from this inconsistency, we should do this here, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants