Mike,

 Sorry didn't mean to confuse - debug/release - I was thinking globally about 
the issue, obviously these defines have nothing to do with debug/release other 
then creating another set of folders. The find_package would happen after hdf5 
is installed and using cmake to read the hdf5 cmake configuration.

I was hoping to remove the build specific defines in H5pubconf.h to somewhere 
else, because these defines are the only difference between static/dynamic 
installs. Libraries are named unique enough. 

Of course thinking about it now, there are other optional components in 
H5pubconf.h! (szip/zlib/parallel...)

Allen

On Tuesday, November 20, 2012 03:27:16 PM Michael Jackson wrote:
> Which "FIND_PACKAGE" sets that variable?
> 
> Inside of the Top level CMakeLists.txt file I have this now.
> 
> OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
> set(H5_BUILT_AS_DYNAMIC_LIB 0)
> set(H5_BUILT_AS_STATIC_LIB 1)
> SET (LIB_TYPE STATIC)
> SET (H5_ENABLE_SHARED_LIB NO)
> SET (H5_ENABLE_STATIC_LIB NO)
> IF (BUILD_SHARED_LIBS)
>   SET (LIB_TYPE SHARED)
>   ADD_DEFINITIONS (-DH5_BUILT_AS_DYNAMIC_LIB)
>   set(H5_BUILT_AS_DYNAMIC_LIB 1)
>   set(H5_BUILT_AS_STATIC_LIB 0)
>   SET (H5_ENABLE_SHARED_LIB YES)
> ELSE (BUILD_SHARED_LIBS)
>   ADD_DEFINITIONS (-DH5_BUILT_AS_STATIC_LIB)
>   set(H5_BUILT_AS_DYNAMIC_LIB 0)
>   set(H5_BUILT_AS_STATIC_LIB 1)
>   SET (H5_ENABLE_STATIC_LIB YES)
>   IF (NOT WIN32)
>     # should this be a user setting : Everyone uses it anyway ?
>     ADD_DEFINITIONS (-DPIC)
>   ENDIF (NOT WIN32)
> ENDIF (BUILD_SHARED_LIBS)
> 
> 
> Then in config/cmake/H5pubconf.h.in I added the following:
> 
> /* Defined if HDF5 was built with CMake AND build as a shared library */
> #cmakedefine H5_BUILT_AS_DYNAMIC_LIB @H5_BUILT_AS_DYNAMIC_LIB@
> 
> /* Defined if HDF5 was built with CMake AND build as a static library */
> #cmakedefine H5_BUILT_AS_STATIC_LIB @H5_BUILT_AS_STATIC_LIB@
> 
> Which now allows everything to work. I am still confused why the change was
> needed for Debug/Release? Ironically enough I'm the original person to put
> the H5_BUILT_AS_DYNAMIC_LIB flag in the header file because when on windows
> and using CMake in another project that includes HDF5 I needed to be able
> to better figure out how the libraries were built so I could make decisions
> on what needs to be copied into my deployment package.
> 
> ___________________________________________________________
> Mike Jackson                    Principal Software Engineer
> BlueQuartz Software                            Dayton, Ohio
> [email protected]              www.bluequartz.net
> 
> On Nov 20, 2012, at 2:36 PM, Allen D Byrne wrote:
> > The problem was that I attempted to allow multiple installs
> > (debug/release,
> > static/dynamic) of hdf5. Everything works great with cmake, because the
> > value is set by the FIND_PACKAGE command. However, I failed to account
> > for the non- cmake process. I wanted to eliminate the duplicate include
> > folders that would result from multiple installs.
> > 
> > What to do with that definition is the issue!
> > 
> > Allen
> > 
> > On Tuesday, November 20, 2012 02:04:21 PM Michael Jackson wrote:
> >> Hmm
> >> 
> >>  Looking at the H5pubconf.h for the 1.8.9 and 1.8.10 builds it would seem
> >> 
> >> that there were some merge issues maybe? Otherwise why was that
> >> definition
> >> removed? Not that I run the tests much (I assume if HDF5 is release then
> >> all the tests are passing but how would any of the tests run if nothing
> >> to
> >> can correctly? Odd. Let me take a look. Can we get this into the first
> >> patch release if I figure out what went wrong?
> >> ___________________________________________________________
> >> Mike Jackson                    Principal Software Engineer
> >> BlueQuartz Software                            Dayton, Ohio
> >> [email protected]              www.bluequartz.net
> >> 
> >> On Nov 20, 2012, at 1:56 PM, Allen D Byrne wrote:
> >>> Mike,
> >>> 
> >>> Are you using CMake to create the hdf5 library? There is an issue with a
> >>> definition that needs to be solved for the next release (the pre-built
> >>> binaries have this define in the H5pubconf.h).
> >>> Add
> >>> 
> >>>                   #define H5_BUILT_AS_DYNAMIC_LIB 1
> >>> 
> >>> in your H5pubconf.h file after building HDF5.
> >>> 
> >>> Allen


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to