AcademySoftwareFoundation / openvdb

OpenVDB - Sparse volume data structure and tools
http://www.openvdb.org/
Apache License 2.0
2.75k stars 665 forks source link

Cmake not working on Windows - Could NOT find PkgConfig and IlmBase #571

Closed nranthony closed 4 years ago

nranthony commented 5 years ago

Following a fresh start, new vcpkg folder and openvdb clone, I've run into errors on the cmake stage. It would appear that it cannot find PkgConfig and IlmBase. See here for cmd line output: cmake-cmd-output.txt

Specific lines being:

-- ----------------------------------------------------
-- ------------- Configuring OpenVDBCore --------------
-- ----------------------------------------------------
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find IlmBase (missing: IlmBase_INCLUDE_DIR IlmBase_LIB_COMPONENTS
  Half) (Required is at least version "2.2")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindIlmBase.cmake:308 (find_package_handle_standard_args)
  C:/dev/vcpkg-master/scripts/buildsystems/vcpkg.cmake:263 (_find_package)
  openvdb/CMakeLists.txt:84 (find_package)

I'm not sure what the PkgConfig refers to. IlmBase was pulled by vcpkg as part of openexr, and in the lib folder all the libraries are 2.3.

Cmake output here: CMakeOutput.log

Thanks in advance for your time.

Neil

Idclip commented 5 years ago

Hey @nranthony,

You don't need to worry about the PkgConfig message. PkgConfig is a tool which CMake will additionally use to try and find libraries if it's available. It shouldn't be necessary with vcpkg.

IIRC, we never ran into IlmBase issues before and were instead stuck with python module issues, is that correct? So this seems new... I also see this CMake warning:

CMake Warning at C:/dev/vcpkg-master/scripts/buildsystems/vcpkg.cmake:104 (message):
  There are no libraries installed for the Vcpkg triplet x86-windows.

as before, would you mind copy/pasting the CMake command you're running?

danrbailey commented 5 years ago

That looks like an issue related to trying to use the x86 libraries. I'd recommend double-checking that you've set the environment variable correctly. This page has a little information about it:

https://vcpkg.readthedocs.io/en/latest/users/triplets/

You can also try including this cmake flag "-DCMAKE_GENERATOR_PLATFORM=x64".

Idclip commented 4 years ago

Hey @nranthony, any luck with the above?

nranthony commented 4 years ago

Hi @Idclip, thanks for the follow up.

I used cmake -DCMAKE_TOOLCHAIN_FILE=<PATH_TO_VCPKG>\scripts\buildsystems\vcpkg.cmake .. for the above errors. Following your responses I have been looking back to previous cmake commands, trying to figure out where to start (and alas hindered a little time-wise recently).

I'll jump in where I left of in the other thread, but any recommendations on a cmake command would be great.

Thanks

nranthony commented 4 years ago

Hi guys, I went back and tried a few options of cmake commands that I thought might work. See here for a collated set of commands and outputs: cmake_cmds_outputs.txt

Here are the cmake logs for each in sequence: CMakeOutput_01.log CMakeOutput_02.log CMakeOutput_03.log

I first tried where I left off from thread https://github.com/AcademySoftwareFoundation/openvdb/issues/495, starting with VS2019 and pointing to Python38 (but it looks like it found 3.7.1, so I removed that flag), and then added the -DCMAKE_GENERATOR_PLATFORM=x64 as suggested, and then instead using VS2017.

In all cases it looks like it get's stuck here:

-- ----------------------------------------------------
-- ----------- Configuring OpenVDBUnitTests -----------
-- ----------------------------------------------------
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find CppUnit (missing: CppUnit_LIBRARY CppUnit_INCLUDE_DIR)
  (Required is at least version "1.10")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindCppUnit.cmake:215 (find_package_handle_standard_args)
  C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake:263 (_find_package)
  openvdb/unittest/CMakeLists.txt:56 (find_package)

Thanks in advance for your time. Please let me know if there's anything else I can provide to help debug.

Neil

Idclip commented 4 years ago

Hi @nranthony, The command you've linked shows that you're requesting the unit tests as part of the build (-DOPENVDB_BUILD_UNITTESTS=ON). If you don't want these, you can simply set this to OFF. If you need these, you also need to install cppunit. If you don't have this installed, you can do in the same way as you've installed the others (https://github.com/AcademySoftwareFoundation/openvdb/issues/495#issuecomment-559315724)

nranthony commented 4 years ago

Cool, thanks for that detail. That allowed me to have a complete cmake, with warnings at the end :

CMake Warning:
  Manually-specified variables were not used by the project:

    CPPUNIT_ROOT
    OPENEXR_ROOT

On opening the solution in VS I get an error: One of more projects in the solution were not loaded correctly. Please see the Output Window for details. The Output Window: Some of the properties associated with the solution could not be read.

I tried both VS2017 and VS2019 cmake options, and running VS as administrator in both cases. I tried opening OpenVDB.sln and OpenVDBCore.sln in the openvdb folder.

On trying to build the ALL_BUILD section of code I get an error: Visual Studio has encountered an unexpected error.

Looking back at the cmake output that appears to work, I still see that it cannot find PkgConfig:

-- ----------------------------------------------------
-- ------------- Configuring OpenVDBCore --------------
-- ----------------------------------------------------
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Here's the last cmake cmd and output for your reference: cmake_cmd_out.txt

Thanks for your time.

Neil

danrbailey commented 4 years ago

Hi,

There are no errors in your CMake output, it appears to have generated correctly. I suggest creating a new solution file from scratch or otherwise googling for a solution to your specific issue here, I don't believe that it's OpenVDB-related at this point.

Note that the pkgconfig output is just a warning, there's a fall-back in the CMake that uses other mechanisms to track down the required dependencies if it can't be found which is what has happened here.

Cheers,

On Wed, Dec 11, 2019 at 4:42 PM N Anthony notifications@github.com wrote:

Cool, thanks for that detail. That allowed me to have a complete cmake, with warnings at the end :

CMake Warning: Manually-specified variables were not used by the project:

CPPUNIT_ROOT
OPENEXR_ROOT

On opening the solution in VS I get an error:

One of more projects in the solution were not loaded correctly. Please see the Output Window for details. The Output Window: Some of the properties associated with the solution could not be read.

I tried both VS2017 and VS2019 cmake options, and running VS as administrator in both cases. I tried opening OpenVDB.sln and OpenVDBCore.sln in the openvdb folder.

On trying to build the ALL_BUILD section of code I get an error: Visual Studio has encountered an unexpected error.

Looking back at the cmake output that appears to work, I still see that it cannot find PkgConfig:


-- ------------- Configuring OpenVDBCore --------------


-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Here's the last cmake cmd and output for your reference: cmake_cmd_out.txt https://github.com/AcademySoftwareFoundation/openvdb/files/3953267/cmake_cmd_out.txt

Thanks for your time.

Neil

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openvdb/issues/571?email_source=notifications&email_token=ABICERUYNMGCBYK6AVN6OYTQYGCGTA5CNFSM4JSOZOJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGVCC5Y#issuecomment-564797815, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABICERWSSTPRNLPQSLHDUPLQYGCGTANCNFSM4JSOZOJA .

--

Dan Bailey | R&D | ILM Vancouver danbailey@ilm.com | 415 746-XXXX Desk | 778 882-XXXX Cell

nranthony commented 4 years ago

I understand, and thanks for all your time helping me work through the details. I'll aim to post any solutions to the VS issues here for completeness.

I bid you good code.

Neil

inhahe commented 4 years ago

I'm getting this error too. Maybe it's not an OPENVDB error per se, but I followed the instructions to build OpenVDB to the T, and my CMake works fine for other projects, so maybe the installation instructions need to be modified..