Mike,
    Considering the other config options in the H5pubconf.h file that are not 
these defines - I will propose that these get replaced into the file at build 
time for the patch release.

I will need to find a different solution that works for all use cases.

The change will be exactly as you mentioned and as existed in 1.8.9

Allen

On Tuesday, November 20, 2012 03:48:53 PM Michael Jackson wrote:
> Relying on someone else NOT to rename the libraries because they monkey
> around with the CMake files probably isn't a good option either. If you ask
> "how are libraries named on Windows" you will get at least 2 different
> answers (most likely more). With mingw they are .dylib, with msvc they
> should be .dll. But where are the "Runtime" libraries installed versus the
> link time libraries? some install them into lib some install them into bin.
> Some install in both places. I got tired of trying to out-think the other
> person and just added those symbols to the header. I have my own
> "FindHDF5.cmake" that looks specifically for those symbols during my
> project's configure process then can make smarter decisions based on what
> it finds.
> 
>   Still confused on the "... creating other folders." What other folders are
> getting created?
> 
> I don't have a problem with moving the build specific defines somewhere out
> of H5pubconf.h. Just let me know where you want them. I guess I'll add the
> necessary version checking code to my own project to know that if we are
> HDF5 1.8.10 or less I look in a certain header otherwise look in another
> place. Having that define in there solves a lot of deployment problems for
> windows and to some extent OS X.
> 
> Thanks
> ___________________________________________________________
> Mike Jackson                    Principal Software Engineer
> BlueQuartz Software                            Dayton, Ohio
> [email protected]              www.bluequartz.net
> 
> On Nov 20, 2012, at 3:41 PM, Allen D Byrne wrote:
> > 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