Skip to content

-C config/cacheinit.cmake is required for configuration in hdf5 2.0 / missing DEBUG_POSTFIX #6087

@Andrej730

Description

@Andrej730

Hi! On Windows for hdf5 <2.0 when configuring with cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX="installation" -DCMAKE_BUILD_TYPE=Debug it resulted in libraries having debug posfix - e.g. hdf5_D.lib, instead of hdf5.lib.

But in hdf5 2.0 it's no longer the case and hdf5.lib is also produced for Debug build.
Reading through the cmake files, it seems it's started from #5600 - when CMAKE_DEBUG_POSTFIX was moved to cacheinit.cmake.

Does it mean that standard way of configuration is now always requires cmake .. -C cacheinit.cmake? It would be kind of awkward, since typically you expect from repo to configure with just cmake .., unless you're using some kind of preset.

If it is required, then it seems cacheinit.cmake is missing in the examples below from the installation instructions:

On Windows 32 bit
cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-2."X"."Y"
On Windows 64 bit
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-2."X"."Y"
On Linux and Mac
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-2."X"."Y"
where "X" is the current release version.

But even providing it and building with cmake .. -C ../config/cmake/cacheinit.cmake -G Ninja -DCMAKE_INSTALL_PREFIX="L:\oblivion\hdf5-install\" -DCMAKE_BUILD_TYPE=Debug -DDBUILD_TESTING=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT=OFF -DHDF5_BUILD_FORTRAN=OFF -DHDF5_BUILD_JAVA=OFF -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded -DCMAKE_POLICY_CMP0141=NEW -DHDF5_BUILD_TOOLS=OFF -DHDF5_BUILD_EXAMPLES=OFF -DHDF5_BUILD_UTILS=OFF results in hdf5.lib, not hdf5_d.lib.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

In progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions