IRC log for #brlcad on 20120127

00:47.13starseekeryep, looks like that did the trick... at least, alot more stuff is ending up in lib...
02:20.53*** join/#brlcad IriX64 (~kvirc@64.229.211.15)
02:21.08IriX64http://pastebin.ca/2106675
02:21.22IriX64checked out 30 minutes ago, hope this helps,
02:21.25IriX64ciao
02:41.54brlcadstarseeker: awesome, I'll stub in something for the bs lib
02:57.37starseekerbrlcad: maybe just stick the file in misc?  seems kinda silly to have a src dir for four lines...
03:02.16brlcadstarseeker: that should do it
03:02.20CIA-48BRL-CAD: 03brlcad * r49121 10/brlcad/trunk/misc/win32-msvc/ (CMakeLists.txt bootstrap.cpp):
03:02.20CIA-48BRL-CAD: stub in an initial bootstrap 'library' so that all of our application binaries
03:02.20CIA-48BRL-CAD: on Windows can call SetDllDirectory(). this is avoid having to require users to
03:02.20CIA-48BRL-CAD: set a PATH yet still keeping libraries in lib and applications in bin like we do
03:02.20CIA-48BRL-CAD: on all other platforms.
03:02.52brlcadexactly what I was thinking too ;)
03:03.13brlcadplus that way there's no need for preprocessor protections, not built for all platforms
03:05.37brlcadthere's still a chance that it won't be sufficient if windows tries to bind libraries prior to static initialization, but we'll see
03:05.45starseekerBRLCAD_ROOT... do I need to substitute that with CMake/
03:05.46starseeker?
03:06.03brlcadoh right, hold on
03:10.10starseekermaybe I'd better do a template
03:10.36CIA-48BRL-CAD: 03brlcad * r49122 10/brlcad/trunk/misc/win32-msvc/bootstrap.cpp: begs explanation, so detail what's going on here. also need common.h for BRLCAD_ROOT.
03:10.39brlcadjust needed a header
03:11.07brlcadI think LPCTSTR are just char*, so that might just compile cleanly straight up
03:18.42starseekerbrlcad: give me a few minutes - I'm testing something quick on Linux and then I'll need to reboot to the dark side and update...
03:20.31starseekernot sure what IriX64 was seeing - just did a build here and the install worked...
03:30.23starseekergah - oh right, the copyright update
03:30.34starseekergets comfortable...
03:43.12starseekergroan
03:44.34starseekerah hah - let the configure begin...
03:53.57starseekerbrlcad: I link this thing in to just executables?
03:54.26brlcadyeah, but maybe just start with one application to test it
04:18.04*** join/#brlcad louipc (~louipc@archlinux/fellow/louipc)
04:30.19starseekerbrlcad: it wants bs to produce a .lib file, and it looks like right now it won't do that - don't we need to export something?
04:40.37brlcadactually, even better if you just link to that lib file everywhere
04:42.00brlcadstarseeker: it doesn't need to export anything because there are no public functions being called by anything else
04:42.21brlcadwhen the library is loaded (whether embedded in a binary or in its own dll), it'll run that function
04:42.28starseekerthat's the problem - it's NOT generating a lib file
04:42.51brlcadwhat is "it" that wants a lib?
04:42.58starseekerthe linking logic
04:43.17starseekerif I try to link bs to an executable, it's looking for a bs.lib file to link
04:43.34brlcadwhat normally creates one of those?
04:44.27brlcadanother perhaps simpler approach is to attach that bootstap.cpp to every application source list
04:44.33starseekerthey don't appear without the import/export logic
04:44.53starseekeroh, you mean build it in with the executables?
04:45.03brlcadsure, same idea
04:45.14brlcadmaybe simpler than making it spit out a proper lib/dll
04:45.39starseekerthat's a thought
04:45.42starseekerone sec...
04:45.43brlcadi'm sure we can make the dll/lib work even if we have to export a useless symbol, but it shouldn't be needed
04:59.06brlcadfyi, we may need to use the /DELAYLOAD linker flag if it tries to load all dll's before static initialization, we'll see
05:03.29CIA-48BRL-CAD: 03brlcad * r49123 10/brlcad/trunk/misc/win32-msvc/bootstrap.cpp: double-whammy, give the dll an apientry so there's at least one symbol to call
05:03.51starseekerbrlcad: hang on, I'm still setting up to test just including the cpp in the src lists
05:06.54starseekerhmm... problem, we can only have one BRLCAD_ROOT defined at a time
05:07.03starseekershouldn't we have a bu_brlcad_root call in there?
05:07.48starseekerthe definition *does* change depending on whether we're in build dir or installed...
05:08.16starseekerbut that's a problem, because it means *every* binary will need to link libbu
05:10.03brlcadit can't call bu_brlcad_root() .. that's a libbu function .. which would require libbu be loaded .. which would require knowledge about where libbu is ...
05:10.17starseekerright - so this won't work
05:10.41brlcadit can be some other string, I was just stubbing in the compile time one to see if the idea itself works
05:11.07starseekershakes his head - doesn't matter what string it is - the problem is it needs to be static
05:12.20brlcadthe idea we were talking about earlier is that it'd stub in one thing for build dir and another for install
05:12.52starseekerthat only works if it builds two dlls - on to output in the build bin dir, and one to install
05:13.20starseekerand we're back to needing the .lib file, with the import/export fun
05:14.15brlcadthat wasn't a show stopper in the least
05:14.19starseekerplus (even better) I don't know what would happen with the linking - which .lib file shouldI specify?
05:14.27brlcadjust figured building it in is easier (to at least test)
05:15.24starseekerfor that part - but if we can't figure out how to get it working on the build side it's moot
05:15.52brlcadif it doesn't even work, it's moot
05:16.07brlcadI was trying to make sure it works before wasting time on perfecting the build system
05:17.47brlcadif you want to sort out the build system part first, .. that's a bit cart before horse, but okay :)
05:18.04starseekerone sec - I'm adding the cpp file to one of the libbu tests directly
05:18.08starseekerwe'll see what happens
05:18.41brlcadbtw, 49123 i *think* will give it a symbol to export for dll/lib loading
05:18.58brlcadif not, can add something more explicit if we try the lib route
05:19.26brlcadif it works for the binary, it should be a done deal either built-in or as a dll
05:19.32starseekerk - if it does work, we're gonna have to figure out how to get one result in the build dir and another in the install dir
05:19.39brlcadif it doesn't work, then we can try lib next
05:20.53starseekerwhy does it even need the lib file if it's supposed to just use the dll?
05:21.21brlcadthe lib file is basically a manifest for what's in the dll
05:21.28brlcadit needs that manifest to link, but only the dll at runtime
05:21.38brlcad(because it compiles the manifest into the binary)
05:23.11starseekercrap - wait a minute, why is the libbu.dll file here??
05:27.29starseekersomething's messed up here
05:27.46starseeker<censored>
05:29.46starseekerbrlcad: should that "\lib" be "\\lib" ?
05:33.59brlcadah, yeah
05:34.46CIA-48BRL-CAD: 03brlcad * r49124 10/brlcad/trunk/misc/win32-msvc/bootstrap.cpp: not the ib directory
05:35.22brlcadremember to try adding /DELAYLOAD too if it doesn't work
05:35.28brlcadlinker flag
05:36.12starseekernods - I'm backwards a step right now - the setting of RUNTIME_OUTPUT_DIRECTORY for add_library isn't working
05:36.19starseekerdlls are still in with the .exe files
05:47.39starseekercrap
05:47.44starseekerI can't override it
05:47.52starseekerit's putting the dll in bin regardless
05:48.14starseekerI may have to email the list
05:48.28starseekeror this could be some VS Express vs. Pro issue
05:48.46starseekeris rapidly losing the will to muck with this...
12:20.55*** join/#brlcad Stattrav (~Stattrav@61.12.114.82)
12:20.55*** join/#brlcad Stattrav (~Stattrav@unaffiliated/stattrav)
14:12.06*** join/#brlcad pawleeq (~pawleeq@core1.humlnet.cz)
14:43.51CIA-48BRL-CAD: 03erikgreenwald * r49125 10/brlcad/trunk/src/libgcv/test_bottess.c: start filling in the "all deleted" compose condition
15:16.08``Erikheh http://open.salon.com/blog/jlsathre/2012/01/11/25_things_i_learned_from_opening_a_bookstore
15:44.06starseekerhehe
15:44.35starseekersounds like a fun store
15:50.57*** join/#brlcad Technicus (~Technicus@DSLPool-net208-2.wctc.net)
15:58.13CIA-48BRL-CAD: 03erikgreenwald * r49126 10/brlcad/trunk/src/libgcv/test_bottess.c: makr foo. test nfaces. init bn_tol.
16:01.41starseekerrebuilds the will to much with Windows...
16:15.48CIA-48BRL-CAD: 03erikgreenwald * r49127 10/brlcad/trunk/src/libgcv/bottess.c: fix off by one error in bulk face removal
16:27.19CIA-48BRL-CAD: 03erikgreenwald * r49128 10/brlcad/trunk/src/libgcv/bottess.c: fix bug, wrong faces being removed and kept.
16:28.06CIA-48BRL-CAD: 03erikgreenwald * r49129 10/brlcad/trunk/src/libgcv/test_bottess.c: add more compose tests
16:35.33``Eriky'know, if that was it, I'm not sure if I'm gonna be happy or pissed O.o *starts rebuilding test geometry)
16:47.59*** join/#brlcad merzo (~merzo@109-192-133-95.pool.ukrtel.net)
16:48.17starseekervotes both
18:09.04*** join/#brlcad Technicus (~Technicus@DSLPool-net208-2.wctc.net)
18:19.26*** join/#brlcad Technicus (~Technicus@DSLPool-net208-2.wctc.net)
18:28.18*** join/#brlcad packrat (~packrator@c-98-209-146-133.hsd1.mi.comcast.net)
18:28.42*** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
18:53.36*** join/#brlcad Technicus (~Technicus@DSLPool-net208-2.wctc.net)
19:19.44CIA-48BRL-CAD: 03n_reed * r49130 10/brlcad/trunk/src/libbu/test_sscanf.c: add tests for string termation behavior and support of literal ']' and '-' in character classes
19:46.47CIA-48BRL-CAD: 03n_reed * r49131 10/brlcad/trunk/src/libbu/test_sscanf.c: ensure float constants are printable
20:07.44starseekergrowls... RUNTIME_OUTPUT_DIRECTORY IS being set, but it's either not reaching the MSVC project files or its being overridden by something else
20:13.58*** join/#brlcad IriX64 (~kvirc@64.229.211.15)
20:15.07IriX64further to that pastebin last night, both src/other/tk and tcl INSTALL files are empty, and i don't know how to fix it.
20:15.56IriX64ciao
20:16.02*** part/#brlcad IriX64 (~kvirc@64.229.211.15)
20:16.22starseekerconfound it - what platform, config options??
20:22.18*** join/#brlcad merzo (~merzo@148-11-132-95.pool.ukrtel.net)
20:39.30*** join/#brlcad DarkCalf (DC@173.231.40.98)
20:43.18CIA-48BRL-CAD: 03starseeker * r49132 10/brlcad/trunk/CMakeLists.txt: Looks like we need to set target properties for multiple configurations, in order to re-direct appropriately.
21:12.00starseekerbrlcad: tried building bootstrap.cpp into mged - doesn't seem to work, even when I try adding /DELAYLOAD
21:12.53starseekerif you want to give it a go it should be simple now - the default Windows build will put everything into lib, just add ../../misc/win32-msvc/bootstrap.cpp to the MGED sources list
21:25.39starseeker``Erik: any luck?
21:27.24``Erikhrm?
21:28.56starseekerwith the bots
21:29.25``Erika little, it's uncovering bugs, but at least they're understandable now O.o
21:34.57``Erik(rather be dorking with lithp, though... *sigh* :)
21:41.44starseeker<snort> could be worse - wanna try to convince Windows to have dlls somewhere other than the executable directory?
21:42.46starseekerrealizes he probably shouldn't have expected that bootstrap.cpp test to work, given the definition of BRLCAD_ROOT that was probably used
21:43.11starseekercrud... back to Windows...
21:50.14``Erik<-- quickly deletes his msvc to stay out of this O.o
21:55.12starseekercrap - nope
21:55.55starseekersigh... this just isn't how Windows normally works...
21:56.18starseekerbrlcad: I guess we'll need to have a go at it next week.
22:14.44``Erikwould be curious to hear bob and keith opine on this, thinks the bootstrap thing has an 'ugly wrong hack' smell, but isn't a windows guy O.o
22:14.58``Erik(also; "windows normally works"? O.O )
22:15.22starseeker``Erik: Sean and I discussed it yesterday - he wants to maintain the build/installation tree layout consistently across platforms
22:15.37starseekerdisagrees, but you know how that goes...
22:15.57``ErikI read as much in the backlog, but our layout is "unix", and windows is not unix
22:18.25``Erikwhy not just have a set 'relative lib dir' and make it '...\bin\' for windows? even auto* is set up for user/admin settable lib paths, --libdir=
22:19.00starseekerit's not that we couldn't make the "standard" Windows behavior work - by and large, it already WAS working
22:19.15starseekerthe trigger was the BotUtility thing in Archer, but something else is wrong there
22:19.41starseeker(maybe just need to get package require libbu working...)
22:19.57``Erikthe issue was loadlib("%s/lib/mylib.so", basedir()); not working on windows, so bob had to do an "if windows" clause?
22:20.00starseekeranyway, the issue is not functionality related - it's the platform difference
22:20.35starseekerthat was one issue - if I understand brlcad correctly, he regards that as a separate issue from the platform-dependent layout
22:21.53``Erikloadlib("%s/mylib.so", libdir()); seems cleaner than trying to twist windows into a unix to me :) *shrug* I still think it'd be interesting hearing windows peoples thoughts on this
22:22.54starseeker``Erik: there are probably a couple cleaner ways to do that, but even if we do clean that up the layout issue remains :-/
22:23.17``Erik(and common layout be damned, shoving square pegs in round holes will never be 'right')
22:24.18``Eriknext, we'll be forcing all platforms to have Brlcad.app/Contents/Linux-x86_64/mged or something
22:25.22starseekerwinces
22:25.56``Erikreductio ad absurdum :)
22:26.34starseekerhopefully brlcad will be back on later and you can get it straight from him - second-hand is probably a bad way to come at this discussion
22:26.50starseekerdoesn't want to mischaracterize what he said due to lack of understanding...
22:30.04``ErikI probably won't be on, kinda planning on moving my server and it might take a few days before I'm back on irc O.o mebbe the right set of people will end up in a room next week to explore ideas and rationales
22:30.31starseekerfun fun
22:30.41``Erik(and once it goes into the abyss of meetings and groupthink and committee, it'll die a slow painful death) *cough* O:-)
22:31.36``Eriklispworks 6.1 came out O.o
22:31.52starseekerwould prefer bu_brlcad_libraries (in the same vein as bu_brlcad_root and bu_brlcad_data) as a way to reliably get the libraries directory
22:32.52starseekeror even wrap it all into a bu_brlcad_path(type, rhs) that takes root, data, libs, etc. for type and does the right thing under the hood
22:32.54``Erikme, too.. package maintainers might do something retarded like /usr/brlcad/lib64 or /usr/lib/brlcad/
22:34.02starseekerthat's again a separate issue from the layout question, I suppose
22:34.39starseekerponders putting together bu_brlcad_path... might be interesting to test out...

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.