Another thing that needs fixing in the Cmake script
Hdf5 is a bit of a mess regarding the use use of header files
Instead of simply having one “hdf5.h”, there are many and they are scattered all over the place
When using cmake and *NOT* doing an install, there are 3 header files that netCDF needs
From hdf5
In this example %root% is some path
“hdf5.h”
needs
-DHDF5_INCLUDE_DIR=%root%/hdf5/src
Also needed is “H5pubconf.h”
That is generated by cmake
Here in the “build” subfolder because that was the location of the cmake build
-DHAVE_HDF5_H=%root%/hdf5/build
And finally the high level header files
Located in
-DHDF5_HL_INCLUDE_DIR=%root%/hdf5/hl/src
So this new symbol “HDF5_HL_INCLUDE_DIR”
Needs to be added , like this
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
Another symbol would be needed for the location of
“H5pubconf.h”
But the script has a “HAVE_HDF5_H” that can be used like this
and I get this error
CMake Error at CMakeLists.txt:334 (specify_static_crt_flag):
Unknown CMake command "specify_static_crt_flag".
this is the code called
IF(MSVC)
OPTION(NC_USE_STATIC_CRT "Use static CRT Libraries ('\\MT')." OFF)
IF(NC_USE_STATIC_CRT)
SET(USE_STATIC_CRT ON)
specify_static_crt_flag()
ENDIF()
ENDIF()
"specify_static_crt_flag" is a macro included in CMakeLists.txt
MACRO(specify_static_crt_flag)
so, I'm not sure why this gives that error
thanks
----------------------
Pedro Vicente http://www.space-research.org/
_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web. Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.
netcdfgroup mailing list
netcdfgroup@unidata.ucar.edu
For list information or to unsubscribe, visit: Unidata | Support
dep.bat
builds the current netcdf repo using cmake (actually the 4.50 tag) and its dependencies, like hdf5
the cmake build will fail because it cannot find the hdf5 HL headers
···
From: Pedro Vicente
Sent: Friday, December 29, 2017 2:26 PM
To: netcdfgroup@unidata.ucar.edu
Cc: hdf-forum@lists.hdfgroup.org
Subject: Re: [netcdfgroup] cmake changes
Another thing that needs fixing in the Cmake script
Hdf5 is a bit of a mess regarding the use use of header files
Instead of simply having one “hdf5.h”, there are many and they are scattered all over the place
When using cmake and *NOT* doing an install, there are 3 header files that netCDF needs
From hdf5
In this example %root% is some path
“hdf5.h”
needs
-DHDF5_INCLUDE_DIR=%root%/hdf5/src
Also needed is “H5pubconf.h”
That is generated by cmake
Here in the “build” subfolder because that was the location of the cmake build
-DHAVE_HDF5_H=%root%/hdf5/build
And finally the high level header files
Located in
-DHDF5_HL_INCLUDE_DIR=%root%/hdf5/hl/src
So this new symbol “HDF5_HL_INCLUDE_DIR”
Needs to be added , like this
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
Another symbol would be needed for the location of
“H5pubconf.h”
But the script has a “HAVE_HDF5_H” that can be used like this
and I get this error
CMake Error at CMakeLists.txt:334 (specify_static_crt_flag):
Unknown CMake command "specify_static_crt_flag".
this is the code called
IF(MSVC)
OPTION(NC_USE_STATIC_CRT "Use static CRT Libraries ('\\MT')." OFF)
IF(NC_USE_STATIC_CRT)
SET(USE_STATIC_CRT ON)
specify_static_crt_flag()
ENDIF()
ENDIF()
"specify_static_crt_flag" is a macro included in CMakeLists.txt
MACRO(specify_static_crt_flag)
so, I'm not sure why this gives that error
thanks
----------------------
Pedro Vicente http://www.space-research.org/
_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web. Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.
netcdfgroup mailing list
netcdfgroup@unidata.ucar.edu
For list information or to unsubscribe, visit: Unidata | Support
We understand that this issue is a valid concern. However, because the build directory
is a working space, making the proposed change may introduce errors later on.
This is not an issue that we plan to work on. For a simple solution perform the install step.
Another thing that needs fixing in the Cmake script
Hdf5 is a bit of a mess regarding the use use of header files
Instead of simply having one “hdf5.h”, there are many and they are scattered all over the place
When using cmake and *NOT* doing an install, there are 3 header files that netCDF needs
From hdf5
In this example %root% is some path
“hdf5.h”
needs
-DHDF5_INCLUDE_DIR=%root%/hdf5/src
Also needed is “H5pubconf.h”
That is generated by cmake
Here in the “build” subfolder because that was the location of the cmake build
-DHAVE_HDF5_H=%root%/hdf5/build
And finally the high level header files
Located in
-DHDF5_HL_INCLUDE_DIR=%root%/hdf5/hl/src
So this new symbol “HDF5_HL_INCLUDE_DIR”
Needs to be added , like this
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
Another symbol would be needed for the location of
“H5pubconf.h”
But the script has a “HAVE_HDF5_H” that can be used like this
and I get this error
CMake Error at CMakeLists.txt:334 (specify_static_crt_flag):
Unknown CMake command "specify_static_crt_flag".
this is the code called
IF(MSVC)
OPTION(NC_USE_STATIC_CRT "Use static CRT Libraries ('\\MT')." OFF)
IF(NC_USE_STATIC_CRT)
SET(USE_STATIC_CRT ON)
specify_static_crt_flag()
ENDIF()
ENDIF()
"specify_static_crt_flag" is a macro included in CMakeLists.txt
MACRO(specify_static_crt_flag)
so, I'm not sure why this gives that error
thanks
----------------------
Pedro Vicente http://www.space-research.org/
_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web. Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.
I was not asking that you change the way the header files are located.
This was more of a request to the netcdf group to add this line
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
In their Cmakelists.txt file
For the reasons explained
I know that doing an “install” would probably avoid the need for that line
But is it not doing an “install” a valid build of the software?
I think so.
I develop mostly on Windows, and typically I never do an install,
Because I am not a user of the software but a writer.
So, I just need to use the binaries in whatever place they were build,
And not having to copy files to some other place, whatever the reason may be
This is all part of an effort to have a remote automatic way to build NCO in Windows,
Like in AppVeyor
I don’t have time now to explain this in detail, I will get back to this at another time
Netcdf devs
Are you familiar with AppVeyor?
it provides an automatic way to build /test git commits for Windows
This is something that you should add to detect these things
4)
Netcdf
Just doing a git clone of master and building on Windows fails
I have to checkout to the 4.6.0 tag to build
5)
HDF5
To build with CRT, I have to uncomment this line
edit CMakeLists.txt at root and add for case when static linking of the C Run-time Library (CRT)
INCLUDE(config/cmake/UserMacros/WINDOWS_MT.cmake)
We discussed this 5 years ago on that long forum thread, when I asked to add CRT support
As an option
Why the need to have to uncomment one line in a script just to have an option enabled?
Regards
-Pedro
···
From: Barbara Jones
Sent: Thursday, February 1, 2018 10:56 AM
To: HDF Users Discussion List
Subject: Re: [Hdf-forum] [netcdfgroup] cmake changes
Hi Pedro,
We understand that this issue is a valid concern. However, because the build directory
is a working space, making the proposed change may introduce errors later on.
This is not an issue that we plan to work on. For a simple solution perform the install step.
-Barbara
From: Hdf-forum [mailto:hdf-forum-bounces@lists.hdfgroup.org] On Behalf Of Pedro Vicente
Sent: Friday, December 29, 2017 1:26 PM
To: netcdfgroup@unidata.ucar.edu
Cc: hdf-forum@lists.hdfgroup.org
Subject: Re: [Hdf-forum] [netcdfgroup] cmake changes
Another thing that needs fixing in the Cmake script
Hdf5 is a bit of a mess regarding the use use of header files
Instead of simply having one “hdf5.h”, there are many and they are scattered all over the place
When using cmake and *NOT* doing an install, there are 3 header files that netCDF needs
From hdf5
In this example %root% is some path
“hdf5.h”
needs
-DHDF5_INCLUDE_DIR=%root%/hdf5/src
Also needed is “H5pubconf.h”
That is generated by cmake
Here in the “build” subfolder because that was the location of the cmake build
-DHAVE_HDF5_H=%root%/hdf5/build
And finally the high level header files
Located in
-DHDF5_HL_INCLUDE_DIR=%root%/hdf5/hl/src
So this new symbol “HDF5_HL_INCLUDE_DIR”
Needs to be added , like this
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
Another symbol would be needed for the location of
“H5pubconf.h”
But the script has a “HAVE_HDF5_H” that can be used like this
and I get this error
CMake Error at CMakeLists.txt:334 (specify_static_crt_flag):
Unknown CMake command "specify_static_crt_flag".
this is the code called
IF(MSVC)
OPTION(NC_USE_STATIC_CRT "Use static CRT Libraries ('\\MT')." OFF)
IF(NC_USE_STATIC_CRT)
SET(USE_STATIC_CRT ON)
specify_static_crt_flag()
ENDIF()
ENDIF()
"specify_static_crt_flag" is a macro included in CMakeLists.txt
MACRO(specify_static_crt_flag)
so, I'm not sure why this gives that error
thanks
----------------------
Pedro Vicente http://www.space-research.org/
_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web. Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.
netcdfgroup mailing list
netcdfgroup@unidata.ucar.edu
For list information or to unsubscribe, visit: Unidata | Support