tbeu / matio

MATLAB MAT File I/O Library
https://matio.sourceforge.io
BSD 2-Clause "Simplified" License
334 stars 97 forks source link

build static libmatio.lib #89

Closed massich closed 6 years ago

massich commented 6 years ago

This is related to https://github.com/conda-forge/libmatio-feedstock/pull/19

massich commented 6 years ago

How is the appveyor processes controlled?

coveralls commented 6 years ago

Coverage Status

Coverage remained the same at 78.988% when pulling c753fe362f7f316751a7a69ac2dd81e512b8ee95 on massich:libmatio.lib_static into 50cfc57910c1ee4d00567dadf0812b634b1bf1f4 on tbeu:master.

coveralls commented 6 years ago

Coverage Status

Coverage remained the same at 81.189% when pulling a3cc3381b7bd893c0888244d48916bc4d39c8f4a on massich:libmatio.lib_static into 6a67f93fb0ffa340d44bc29ded9e466c160107a0 on tbeu:master.

agramfort commented 6 years ago

Ok that explains it

Can you help us with the static build on windows ?

tbeu commented 6 years ago

Can you help us with the static build on windows ?

Sure. Later.

agramfort commented 6 years ago

Its the last blocker for our release so we are pretty excited to move on. If you tell us what to do we can also help

One thing which is still puzzling for us is how appveyor works on te repo without an appveyor file. Can you tell us how this is configured ? And why you don't use an appveyor file ?

Thanks a lot

tbeu commented 6 years ago

@massich Please check if e0bdbf69b55d6b1efedffc6da9cfb1bb2f4a9215 matches your needs.

tbeu commented 6 years ago

How is the appveyor processes controlled?

AppVeyor has two configurations options: appveyor.yml and UI coexistence. Up to now I used the UI only but 7560022e33a43354192b5b3d836d9e405a86a0e2 adds the .appveyor.yml.

massich commented 6 years ago

@tbeu I don't seem to manage to make it work. Matio builds for Win32 but not for x64. I cannot link against 32, and I don't seem to manage to compile for 64. I've been playing with in massich/matio:xx. (the builds are here.

Is there anyone using windows as their regular system that can help with all this setup to make it compile?

tbeu commented 6 years ago

Well, the 64-bit test should not download and extract hdf5-1.8.13-win32-VS2010-shared.zip, but hdf5-1.8.13-win64-VS2010-shared.zip. As written in the Readme of e0bdbf69b55d6b1efedffc6da9cfb1bb2f4a9215, the tests for a static library should download and extract hdf5-1.8.13-win32-VS2010-static.zip and hdf5-1.8.13-win64-VS2010-static.zip, repsectively.

massich commented 6 years ago

Sure, that's what I was trying here but as example of things I don't seem to manage is this:

in the current state 036dbba Win32 fails, because the sln solution links against hdf5.lib not libhdf5.lib which is the static version. Which is normal, but x64 should be passing however is not 'cos is trying to find some simbols with debug information.

If I remotely connect to appveyor, and play around I end up compiling, but I don't understand why HDF5 is not picked from the environment. see:

 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\projects\matio\visual_studio\x64\Release\matdump.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Tools\vcpkg\installed\x64-windows\lib" /LIBPATH:"C:\Tools\vcpkg\installed\x64-windows\lib\manual-link" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "C:\Tools\vcpkg\installed\x64-windows\lib\*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\projects\matio\visual_studio\x64\Release\matdump.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\projects\matio\visual_studio\x64\Release\matdump.lib" /MACHINE:X64 x64\Release\getopt_long.obj
tbeu commented 6 years ago

Matio builds for Win32 but not for x64.

I now remember that I also failed to build the x64 target on appveyor when I set it up 3 years ago. I simply decided to give up.

2018-08-17 13_49_23-matio - appveyor

MaartenBent commented 6 years ago

The other build errors look like incompatibilities between the vs2010 HDF libraries and vs2015 target. Maybe use newer libraries (contains shared and static) or force PlatformToolset v100 (if AppVeyor supports it)?

tbeu commented 6 years ago

My intention is to keep build with VS2010 (both the sln/vcxproj and if possible on AppVeyor). It works if I build from VS2010 locally. I do not have plans to upgrade to VS2015. As I said, I did not figure it out how to build on AppVeyor the x64 target 3 years ago.

massich commented 6 years ago

@MaartenBent if you do know how to fix the .sln please do. I've build a cmake version of it, that does the bearly minimum I need.

If you want I can add you on my repo, and you push here directly, take over the PR. What ever suits you.

MaartenBent commented 6 years ago

Sure, I can have a look. I'll first try to fix both 32-bit builds on AppVeyor (with VS2010) and the local 64-bit shared build. Then have a look at the 64-bit versions on AppVeyor.

tbeu commented 6 years ago

Maybe https://github.com/swistakm/pyimgui/blob/master/.appveyor.yml can give some clues.

tbeu commented 6 years ago

Release Lib configuration can set /ignore:4099 to ignore the hundreds of linker warnings.

MaartenBent commented 6 years ago

Thanks. I'll try to use SDK 7.1 now as is done in your link. There seem to be some issues with SDK 7.0A, which you encountered 3 years ago as well. And getting vs2015 to work seems to fail as well.

MaartenBent commented 6 years ago

https://ci.appveyor.com/project/tbeu/matio/build/1.5.12+build.64 seems to hang, @tbeu can you cancel?

tbeu commented 6 years ago

@MaartenBent I can add you as collaborator to AppVeyor but need your proper mail address then,

tbeu commented 6 years ago

I cancelled https://ci.appveyor.com/project/tbeu/matio/build/1.5.12+build.67 which also hang.

tbeu commented 6 years ago

Hm, I do not get the linker warning when building Release Lib from VS2010 (and refering against hdf5-1.8.13-win32-VS2010-static). Is it because I copied Release Lib configuration from Release configuration and it still has a Link section in the vcxproj? After all, there should be no linker step when building Release Lib.

tbeu commented 6 years ago

Does it work? https://ci.appveyor.com/project/tbeu/matio/build/1.5.12+build.69/job/o68h4c0kp1bcwnj5#L102

MaartenBent commented 6 years ago

At least one of the 64-bit builds works now. But now SetEnv fails for the static builds.

tbeu commented 6 years ago

Hooray, it builds for the first time. Well done. Though I consider the linker warnings for the Release Lib configuration strange. They should not be there at all.

massich commented 6 years ago

LGTM!!

MaartenBent commented 6 years ago

We're getting there. Need to add static debug configuration, and I consider renaming to Release Static instead of Release Lib. Also need to cleanup AppVeyor.yml and fix the artifacts.

tbeu commented 6 years ago

I still wonder what is wrong with Release Lib configuration as there should not be any linker step involved at all.

MaartenBent commented 6 years ago

Seems you can't ignore the warning in VS2010: https://stackoverflow.com/questions/661606/visual-c-how-to-disable-specific-linker-warnings

The libraries and executable are still linked, but statically. I'll try with <GenerateDebugInformation>false</GenerateDebugInformation> false for release builds.

tbeu commented 6 years ago

Well, I do not see that warnings if I build within VS2010 (and not msbuild).

MaartenBent commented 6 years ago

And if you use msbuild? Do you have a vc100.pdb in your output directory?

tbeu commented 6 years ago

Ah, https://ci.appveyor.com/project/tbeu/matio/build/1.5.12+build.74 looks better indeed.

tbeu commented 6 years ago

Please leave it at Release Lib for now as this is how I labeled all my projects. Except, if we add the two missing configurations:

  1. Build libmatio.dll with static hdf5/zlib dependencies (H5_BUILT_AS_STATIC_LIB). That is, for example, what I built manually and added as assets at https://github.com/tbeu/matio/releases/tag/v1.5.12.
  2. Build libmatio.lib with dynamic hdf5/zlib dependencies (H5_BUILT_AS_DYNAMIC_LIB).
tbeu commented 6 years ago

@MaartenBent Anything left open on your side?

massich commented 6 years ago

So based on this, now all the objects are inisde libmatio.lib. I wonder if this is the best way to ship it. If I'm writting a client code that uses matio and hdf5 (but only through matio), as it is now I only need to link against libmatio. However if my code also calls some stuff from hdf5 I might get in trouble. Shouldn't be better to ship static libmatio.lib with matio.res endian.obj inflate.obj io.obj mat.obj mat4.obj mat5.obj mat73.obj matvar_cell .obj matvar_struct.obj read_data.obj and then let the user choose a compatible hdf5 ??

E:\>lib /list libmatio.lib
Microsoft (R) Library Manager Version 14.12.25835.0
Copyright (C) Microsoft Corporation.  All rights reserved.

x64\Release Lib\matio.res
x64\Release Lib\endian.obj
x64\Release Lib\inflate.obj
x64\Release Lib\io.obj
x64\Release Lib\mat.obj
x64\Release Lib\mat4.obj
x64\Release Lib\mat5.obj
x64\Release Lib\mat73.obj
x64\Release Lib\matvar_cell.obj
x64\Release Lib\matvar_struct.obj
x64\Release Lib\read_data.obj
x64\Release Lib\snprintf.obj
szip.dir\RelWithDebInfo\encoding.obj
szip.dir\RelWithDebInfo\sz_api.obj
szip.dir\RelWithDebInfo\rice.obj
zlib.dir\RelWithDebInfo\zutil.obj
zlib.dir\RelWithDebInfo\uncompr.obj
zlib.dir\RelWithDebInfo\trees.obj
zlib.dir\RelWithDebInfo\inffast.obj
zlib.dir\RelWithDebInfo\inftrees.obj
zlib.dir\RelWithDebInfo\infback.obj
zlib.dir\RelWithDebInfo\inflate.obj
zlib.dir\RelWithDebInfo\gzwrite.obj
zlib.dir\RelWithDebInfo\gzread.obj
zlib.dir\RelWithDebInfo\gzlib.obj
zlib.dir\RelWithDebInfo\gzclose.obj
zlib.dir\RelWithDebInfo\deflate.obj
zlib.dir\RelWithDebInfo\crc32.obj
zlib.dir\RelWithDebInfo\compress.obj
zlib.dir\RelWithDebInfo\adler32.obj
zlib.dir\RelWithDebInfo\zlib.res
hdf5.dir\RelWithDebInfo\H5lib_settings.obj
hdf5.dir\RelWithDebInfo\H5Tinit.obj
hdf5.dir\RelWithDebInfo\H5FDwindows.obj
hdf5.dir\RelWithDebInfo\H5WB.obj
hdf5.dir\RelWithDebInfo\H5VM.obj
hdf5.dir\RelWithDebInfo\H5TS.obj
hdf5.dir\RelWithDebInfo\H5ST.obj
hdf5.dir\RelWithDebInfo\H5SL.obj
hdf5.dir\RelWithDebInfo\H5MM.obj
hdf5.dir\RelWithDebInfo\H5Lexternal.obj
hdf5.dir\RelWithDebInfo\H5L.obj
hdf5.dir\RelWithDebInfo\H5Itest.obj
hdf5.dir\RelWithDebInfo\H5I.obj
hdf5.dir\RelWithDebInfo\H5HP.obj
hdf5.dir\RelWithDebInfo\H5FO.obj
hdf5.dir\RelWithDebInfo\H5FL.obj
hdf5.dir\RelWithDebInfo\H5CS.obj
hdf5.dir\RelWithDebInfo\H5C.obj
hdf5.dir\RelWithDebInfo\H5Ztrans.obj
hdf5.dir\RelWithDebInfo\H5Zszip.obj
hdf5.dir\RelWithDebInfo\H5Zshuffle.obj
hdf5.dir\RelWithDebInfo\H5Zscaleoffset.obj
hdf5.dir\RelWithDebInfo\H5Znbit.obj
hdf5.dir\RelWithDebInfo\H5Zfletcher32.obj
hdf5.dir\RelWithDebInfo\H5Zdeflate.obj
hdf5.dir\RelWithDebInfo\H5Z.obj
hdf5.dir\RelWithDebInfo\H5Tvlen.obj
hdf5.dir\RelWithDebInfo\H5Tvisit.obj
hdf5.dir\RelWithDebInfo\H5Tstrpad.obj
hdf5.dir\RelWithDebInfo\H5Tprecis.obj
hdf5.dir\RelWithDebInfo\H5Tpad.obj
hdf5.dir\RelWithDebInfo\H5Torder.obj
hdf5.dir\RelWithDebInfo\H5Topaque.obj
hdf5.dir\RelWithDebInfo\H5Toh.obj
hdf5.dir\RelWithDebInfo\H5Toffset.obj
hdf5.dir\RelWithDebInfo\H5Tnative.obj
hdf5.dir\RelWithDebInfo\H5Tfloat.obj
hdf5.dir\RelWithDebInfo\H5Tfixed.obj
hdf5.dir\RelWithDebInfo\H5Tfields.obj
hdf5.dir\RelWithDebInfo\H5Tenum.obj
hdf5.dir\RelWithDebInfo\H5Tdeprec.obj
hdf5.dir\RelWithDebInfo\H5Tdbg.obj
hdf5.dir\RelWithDebInfo\H5Tcset.obj
hdf5.dir\RelWithDebInfo\H5Tconv.obj
hdf5.dir\RelWithDebInfo\H5Tcompound.obj
hdf5.dir\RelWithDebInfo\H5Tcommit.obj
hdf5.dir\RelWithDebInfo\H5Tbit.obj
hdf5.dir\RelWithDebInfo\H5Tarray.obj
hdf5.dir\RelWithDebInfo\H5T.obj
hdf5.dir\RelWithDebInfo\H5SMtest.obj
hdf5.dir\RelWithDebInfo\H5SMmessage.obj
hdf5.dir\RelWithDebInfo\H5SMcache.obj
hdf5.dir\RelWithDebInfo\H5SMbtree2.obj
hdf5.dir\RelWithDebInfo\H5SM.obj
hdf5.dir\RelWithDebInfo\H5Stest.obj
hdf5.dir\RelWithDebInfo\H5Sselect.obj
hdf5.dir\RelWithDebInfo\H5Spoint.obj
hdf5.dir\RelWithDebInfo\H5Snone.obj
hdf5.dir\RelWithDebInfo\H5Smpio.obj
hdf5.dir\RelWithDebInfo\H5Shyper.obj
hdf5.dir\RelWithDebInfo\H5Sdbg.obj
hdf5.dir\RelWithDebInfo\H5Sall.obj
hdf5.dir\RelWithDebInfo\H5S.obj
hdf5.dir\RelWithDebInfo\H5RS.obj
hdf5.dir\RelWithDebInfo\H5RC.obj
hdf5.dir\RelWithDebInfo\H5Rdeprec.obj
hdf5.dir\RelWithDebInfo\H5R.obj
hdf5.dir\RelWithDebInfo\H5PL.obj
hdf5.dir\RelWithDebInfo\H5Ptest.obj
hdf5.dir\RelWithDebInfo\H5Pstrcpl.obj
hdf5.dir\RelWithDebInfo\H5Pocpypl.obj
hdf5.dir\RelWithDebInfo\H5Pocpl.obj
hdf5.dir\RelWithDebInfo\H5Plcpl.obj
hdf5.dir\RelWithDebInfo\H5Plapl.obj
hdf5.dir\RelWithDebInfo\H5Pint.obj
hdf5.dir\RelWithDebInfo\H5Pgcpl.obj
hdf5.dir\RelWithDebInfo\H5Pfmpl.obj
hdf5.dir\RelWithDebInfo\H5Pfcpl.obj
hdf5.dir\RelWithDebInfo\H5Pfapl.obj
hdf5.dir\RelWithDebInfo\H5Pdxpl.obj
hdf5.dir\RelWithDebInfo\H5Pdeprec.obj
hdf5.dir\RelWithDebInfo\H5Pdcpl.obj
hdf5.dir\RelWithDebInfo\H5Pdapl.obj
hdf5.dir\RelWithDebInfo\H5Pacpl.obj
hdf5.dir\RelWithDebInfo\H5P.obj
hdf5.dir\RelWithDebInfo\H5Ounknown.obj
hdf5.dir\RelWithDebInfo\H5Otest.obj
hdf5.dir\RelWithDebInfo\H5Ostab.obj
hdf5.dir\RelWithDebInfo\H5Oshmesg.obj
hdf5.dir\RelWithDebInfo\H5Oshared.obj
hdf5.dir\RelWithDebInfo\H5Osdspace.obj
hdf5.dir\RelWithDebInfo\H5Orefcount.obj
hdf5.dir\RelWithDebInfo\H5Opline.obj
hdf5.dir\RelWithDebInfo\H5Onull.obj
hdf5.dir\RelWithDebInfo\H5Oname.obj
hdf5.dir\RelWithDebInfo\H5Omtime.obj
hdf5.dir\RelWithDebInfo\H5Omessage.obj
hdf5.dir\RelWithDebInfo\H5Olink.obj
hdf5.dir\RelWithDebInfo\H5Olinfo.obj
hdf5.dir\RelWithDebInfo\H5Olayout.obj
hdf5.dir\RelWithDebInfo\H5Oginfo.obj
hdf5.dir\RelWithDebInfo\H5Ofill.obj
hdf5.dir\RelWithDebInfo\H5Oefl.obj
hdf5.dir\RelWithDebInfo\H5Odtype.obj
hdf5.dir\RelWithDebInfo\H5Odrvinfo.obj
hdf5.dir\RelWithDebInfo\H5Odbg.obj
hdf5.dir\RelWithDebInfo\H5Ocopy.obj
hdf5.dir\RelWithDebInfo\H5Ocont.obj
hdf5.dir\RelWithDebInfo\H5Ochunk.obj
hdf5.dir\RelWithDebInfo\H5Ocache.obj
hdf5.dir\RelWithDebInfo\H5Obtreek.obj
hdf5.dir\RelWithDebInfo\H5Obogus.obj
hdf5.dir\RelWithDebInfo\H5Oattribute.obj
hdf5.dir\RelWithDebInfo\H5Oattr.obj
hdf5.dir\RelWithDebInfo\H5Oalloc.obj
hdf5.dir\RelWithDebInfo\H5Oainfo.obj
hdf5.dir\RelWithDebInfo\H5O.obj
hdf5.dir\RelWithDebInfo\H5MPtest.obj
hdf5.dir\RelWithDebInfo\H5MP.obj
hdf5.dir\RelWithDebInfo\H5MFsection.obj
hdf5.dir\RelWithDebInfo\H5MFdbg.obj
hdf5.dir\RelWithDebInfo\H5MFaggr.obj
hdf5.dir\RelWithDebInfo\H5MF.obj
hdf5.dir\RelWithDebInfo\H5HLint.obj
hdf5.dir\RelWithDebInfo\H5HLdbg.obj
hdf5.dir\RelWithDebInfo\H5HLcache.obj
hdf5.dir\RelWithDebInfo\H5HL.obj
hdf5.dir\RelWithDebInfo\H5HGquery.obj
hdf5.dir\RelWithDebInfo\H5HGdbg.obj
hdf5.dir\RelWithDebInfo\H5HGcache.obj
hdf5.dir\RelWithDebInfo\H5HG.obj
hdf5.dir\RelWithDebInfo\H5HFtiny.obj
hdf5.dir\RelWithDebInfo\H5HFtest.obj
hdf5.dir\RelWithDebInfo\H5HFstat.obj
hdf5.dir\RelWithDebInfo\H5HFspace.obj
hdf5.dir\RelWithDebInfo\H5HFsection.obj
hdf5.dir\RelWithDebInfo\H5HFman.obj
hdf5.dir\RelWithDebInfo\H5HFiter.obj
hdf5.dir\RelWithDebInfo\H5HFiblock.obj
hdf5.dir\RelWithDebInfo\H5HFhuge.obj
hdf5.dir\RelWithDebInfo\H5HFhdr.obj
hdf5.dir\RelWithDebInfo\H5HFdtable.obj
hdf5.dir\RelWithDebInfo\H5HFdblock.obj
hdf5.dir\RelWithDebInfo\H5HFdbg.obj
hdf5.dir\RelWithDebInfo\H5HFcache.obj
hdf5.dir\RelWithDebInfo\H5HFbtree2.obj
hdf5.dir\RelWithDebInfo\H5HF.obj
hdf5.dir\RelWithDebInfo\H5Gtraverse.obj
hdf5.dir\RelWithDebInfo\H5Gtest.obj
hdf5.dir\RelWithDebInfo\H5Gstab.obj
hdf5.dir\RelWithDebInfo\H5Groot.obj
hdf5.dir\RelWithDebInfo\H5Goh.obj
hdf5.dir\RelWithDebInfo\H5Gobj.obj
hdf5.dir\RelWithDebInfo\H5Gnode.obj
hdf5.dir\RelWithDebInfo\H5Gname.obj
hdf5.dir\RelWithDebInfo\H5Gloc.obj
hdf5.dir\RelWithDebInfo\H5Glink.obj
hdf5.dir\RelWithDebInfo\H5Gint.obj
hdf5.dir\RelWithDebInfo\H5Gent.obj
hdf5.dir\RelWithDebInfo\H5Gdeprec.obj
hdf5.dir\RelWithDebInfo\H5Gdense.obj
hdf5.dir\RelWithDebInfo\H5Gcompact.obj
hdf5.dir\RelWithDebInfo\H5Gcache.obj
hdf5.dir\RelWithDebInfo\H5Gbtree2.obj
hdf5.dir\RelWithDebInfo\H5G.obj
hdf5.dir\RelWithDebInfo\H5FStest.obj
hdf5.dir\RelWithDebInfo\H5FSstat.obj
hdf5.dir\RelWithDebInfo\H5FSsection.obj
hdf5.dir\RelWithDebInfo\H5FSdbg.obj
hdf5.dir\RelWithDebInfo\H5FScache.obj
hdf5.dir\RelWithDebInfo\H5FS.obj
hdf5.dir\RelWithDebInfo\H5FDstdio.obj
hdf5.dir\RelWithDebInfo\H5FDspace.obj
hdf5.dir\RelWithDebInfo\H5FDsec2.obj
hdf5.dir\RelWithDebInfo\H5FDmulti.obj
hdf5.dir\RelWithDebInfo\H5FDmpio.obj
hdf5.dir\RelWithDebInfo\H5FDmpi.obj
hdf5.dir\RelWithDebInfo\H5FDlog.obj
hdf5.dir\RelWithDebInfo\H5FDint.obj
hdf5.dir\RelWithDebInfo\H5FDfamily.obj
hdf5.dir\RelWithDebInfo\H5FDdirect.obj
hdf5.dir\RelWithDebInfo\H5FDcore.obj
hdf5.dir\RelWithDebInfo\H5FD.obj
hdf5.dir\RelWithDebInfo\H5Ftest.obj
hdf5.dir\RelWithDebInfo\H5Fsuper_cache.obj
hdf5.dir\RelWithDebInfo\H5Fsuper.obj
hdf5.dir\RelWithDebInfo\H5Fsfile.obj
hdf5.dir\RelWithDebInfo\H5Fquery.obj
hdf5.dir\RelWithDebInfo\H5Fmpi.obj
hdf5.dir\RelWithDebInfo\H5Fmount.obj
hdf5.dir\RelWithDebInfo\H5Fio.obj
hdf5.dir\RelWithDebInfo\H5Ffake.obj
hdf5.dir\RelWithDebInfo\H5Fefc.obj
hdf5.dir\RelWithDebInfo\H5Fdbg.obj
hdf5.dir\RelWithDebInfo\H5Fcwfs.obj
hdf5.dir\RelWithDebInfo\H5Faccum.obj
hdf5.dir\RelWithDebInfo\H5F.obj
hdf5.dir\RelWithDebInfo\H5Eint.obj
hdf5.dir\RelWithDebInfo\H5Edeprec.obj
hdf5.dir\RelWithDebInfo\H5E.obj
hdf5.dir\RelWithDebInfo\H5Dtest.obj
hdf5.dir\RelWithDebInfo\H5Dselect.obj
hdf5.dir\RelWithDebInfo\H5Dscatgath.obj
hdf5.dir\RelWithDebInfo\H5Doh.obj
hdf5.dir\RelWithDebInfo\H5Dmpio.obj
hdf5.dir\RelWithDebInfo\H5Dlayout.obj
hdf5.dir\RelWithDebInfo\H5Dio.obj
hdf5.dir\RelWithDebInfo\H5Dint.obj
hdf5.dir\RelWithDebInfo\H5Dfill.obj
hdf5.dir\RelWithDebInfo\H5Defl.obj
hdf5.dir\RelWithDebInfo\H5Ddeprec.obj
hdf5.dir\RelWithDebInfo\H5Ddbg.obj
hdf5.dir\RelWithDebInfo\H5Dcontig.obj
hdf5.dir\RelWithDebInfo\H5Dchunk.obj
hdf5.dir\RelWithDebInfo\H5Dbtree.obj
hdf5.dir\RelWithDebInfo\H5Dcompact.obj
hdf5.dir\RelWithDebInfo\H5D.obj
hdf5.dir\RelWithDebInfo\H5Bdbg.obj
hdf5.dir\RelWithDebInfo\H5Bcache.obj
hdf5.dir\RelWithDebInfo\H5B2test.obj
hdf5.dir\RelWithDebInfo\H5B2stat.obj
hdf5.dir\RelWithDebInfo\H5B2int.obj
hdf5.dir\RelWithDebInfo\H5B2hdr.obj
hdf5.dir\RelWithDebInfo\H5B2dbg.obj
hdf5.dir\RelWithDebInfo\H5B2cache.obj
hdf5.dir\RelWithDebInfo\H5B2.obj
hdf5.dir\RelWithDebInfo\H5B.obj
hdf5.dir\RelWithDebInfo\H5AC.obj
hdf5.dir\RelWithDebInfo\H5Atest.obj
hdf5.dir\RelWithDebInfo\H5Aint.obj
hdf5.dir\RelWithDebInfo\H5Adeprec.obj
hdf5.dir\RelWithDebInfo\H5Adense.obj
hdf5.dir\RelWithDebInfo\H5Abtree2.obj
hdf5.dir\RelWithDebInfo\H5A.obj
hdf5.dir\RelWithDebInfo\H5trace.obj
hdf5.dir\RelWithDebInfo\H5timer.obj
hdf5.dir\RelWithDebInfo\H5system.obj
hdf5.dir\RelWithDebInfo\H5dbg.obj
hdf5.dir\RelWithDebInfo\H5checksum.obj
hdf5.dir\RelWithDebInfo\H5.obj
MaartenBent commented 6 years ago

I was done, but @massich makes a valid point. This should however be a simple change. <AdditionalDependencies>libhdf5.lib;libzlib.lib;libszip.lib;%(AdditionalDependencies)</AdditionalDependencies> has to be removed from libmatio project and added to matdump and test_mat project.

I encountered a problem with duplicate resources in the debug lib configurations, these will likely be resolved as well. And my workaround can be removed:

    <ResourceCompile>
      <Culture />
      <ResourceOutputFileName />
    </ResourceCompile>

I'll try to test it later today.

MaartenBent commented 6 years ago

All done. Can you confirm the Debug Lib configurations work with your local vs2010?

tbeu commented 6 years ago

Can you confirm the Debug Lib configurations work with your local vs2010?

Yes, tested sucessfully the Win32 build with hdf5-1.8.13-win32-VS2010-static.zip being installed.

tbeu commented 6 years ago

I believe the hundreds of pdb warnings cannot be silenced this time and we simply need to accept it.

MaartenBent commented 6 years ago

Which ones? I do not get any with the vs2015 libraries.

tbeu commented 6 years ago

Same warnings as before. But as this is the Debug build, we have to live with it if linking to the precompiled hdf5 Release libs. No issue for me.

MaartenBent commented 6 years ago

It should be possible to silence them. I will temporarily let AppVeyor build the debug builds so I can see, and silence, the warnings.

MaartenBent commented 6 years ago

The warnings remain. I'll leave the /ignore:4099 in, as they should work with VS2012/14. You can go ahead with merging. If you intend to squash all commits together, could you do it in a different branch and leave this branch intact so the history is not lost?

tbeu commented 6 years ago

If you intend to squash all commits together, could you do it in a different branch and leave this branch intact so the history is not lost?

Yes, I intended to squash all your commits as one. Yes, I can push this branch as backup branch.

MaartenBent commented 6 years ago

Leaving this PR intact should be sufficient for keeping history. No need for an extra branch in the main repository. Thanks.

tbeu commented 6 years ago

Well, this is not up to me as @massich can always delete his PR branch.

MaartenBent commented 6 years ago

After you close this PR, it will remain here even if he removes the branch.

tbeu commented 6 years ago

So how can it get lost then (after merge I mean)?

MaartenBent commented 6 years ago

If you squash and force push to this branch it will remove history.