01:19.35 |
brlcad |
starseeker: you still have to check if
BU_EXPORTS is defined, else you can end up with a double-definition
error |
01:19.55 |
brlcad |
er, BU_EXPORT |
01:22.37 |
brlcad |
the plural naming convention you pulled from
opennurbs doesn't really apply to C code too (wasn't even necessary
for opennurbs really, they're all the same macro) |
01:23.23 |
brlcad |
that one's not a big deal, of course, just not
necessary |
01:24.20 |
brlcad |
maybe better to keep it consistent with
opennurbs, that's fine too |
01:44.19 |
CIA-61 |
BRL-CAD: 03brlcad * r47605
10/brlcad/trunk/include/bu.h: make sure BU_EXPORT isn't already
defined (so callers have some means to override), and error out if
caller tries to import and export simultaneously. |
01:45.28 |
CIA-61 |
BRL-CAD: 03starseeker * r47606
10/brlcad/trunk/src/other/clipper/CMakeLists.txt: tweak clipper dll
CMake logic. |
01:46.12 |
starseeker |
brlcad: this still feels funny to me somehow -
explicitly calling out the import with a library specific flag,
rather than using the more "global" BRLCAD_DLL seems to complicate
the build logic quite a bit... |
01:46.14 |
brlcad |
that template should work well, how's it
look? |
01:48.24 |
brlcad |
it does complicate matters some given each
library has to be listed now, that was to be expected |
01:48.43 |
brlcad |
the problem and benefit of BRLCAD_DLL is that
it was global |
01:48.59 |
starseeker |
brlcad: don't we still need that last else
case with the empty BU_EXPORT ? |
01:49.03 |
brlcad |
it effectively meant *_IMPORT_DLL |
01:49.23 |
starseeker |
nods - finding myself
thinking that wasn't such a bad idea, really... |
01:50.17 |
brlcad |
it's not a terrible idea but there are some
downsides |
01:50.39 |
brlcad |
can't make a target that both exports and
imports (plugins, libraries) |
01:51.22 |
starseeker |
brlcad: the "check for both definitions" case
- will the logic ever get there? |
01:51.26 |
brlcad |
also means that there's cross-library
pollution which prevents core library components from standing on
their own |
01:51.29 |
starseeker |
shouldn't we be checking for that
first? |
01:51.34 |
brlcad |
e.g., a libbu distribution akin to
apr |
01:52.27 |
brlcad |
yeah, you're right |
01:52.31 |
brlcad |
on both counts |
01:52.57 |
starseeker |
one sec.. |
01:53.40 |
brlcad |
already fixed |
01:53.43 |
CIA-61 |
BRL-CAD: 03brlcad * r47607
10/brlcad/trunk/include/bu.h: starseeker right on both counts, need
the empty BU_EXPORT so preprocessor makes the symbol go away and
the error case needs to be tested first |
01:53.52 |
CIA-61 |
BRL-CAD: 03starseeker * r47608
10/brlcad/trunk/src/other/clipper/clipper.hpp: Upgrade the export
macro logic for clipper (hopefully)... |
01:54.46 |
starseeker |
do we need BU_DLL_IMPORTS for a library that
just links to librt? |
01:56.15 |
brlcad |
I don't remember the dll import/export rules
that closely but I believe it depends how the library is
defined |
01:56.38 |
starseeker |
mm. Well, I guess there's always the "try it
and see" approach... |
01:56.41 |
brlcad |
if librt imports bu/bn and exports it's
symbols, then I *think* it'll look for their dll when librt is
loaded |
01:56.55 |
starseeker |
guess I'll be playing with the windows build
again tomorrow (joy...) |
01:57.08 |
brlcad |
if it doesn't import, they get linked static
and have to be resolved at compile time |
01:57.50 |
starseeker |
is trying to decide if librt
should define an RT_DEFINES variable that holds BU_DLL_IMPORTS,
BN_DLL_IMPORTS, etc... |
01:58.51 |
brlcad |
to do it "proper", I believe so |
01:59.25 |
brlcad |
rather, it needs to have them defined when
librt is compiled .. but not necessarily when rt is
compiled |
01:59.45 |
brlcad |
(but can) |
02:00.54 |
brlcad |
it needs them when rt is compiled if librt
doesn't import them or if it also uses bu/bn too (which it
does) |
02:02.08 |
starseeker |
needs to think tactically
about how to set this up... would *really* suck to have to specify
defines for executables per-exec instead of per
directory |
02:03.53 |
starseeker |
probably need to for exec targets in the same
directory as a library (test apps, etc.) since I can't go defining
both, but (say) in util I would prefer to "define 'em all and let
the compiler sort it out", so to speak |
02:12.14 |
brlcad |
starseeker: how about in a/the exec wrapper
macro, have it look for variables matching the provided prefix --
then it's a naming convention all our libs use to define their vars
in one place |
02:12.43 |
starseeker |
you mean use the library list to go after the
variables? |
02:13.07 |
starseeker |
might work, except when we send in libraries
that aren't ours... |
02:13.14 |
brlcad |
something like BUILD_MY_EXEC(rt, LIBRT LIBBN
LIBBU) |
02:13.38 |
starseeker |
nods - BRLCAD_EXEC already
has most of that |
02:13.46 |
brlcad |
which would then look for LIBRT_LIBS,
LIBRT_CPPFLAGS, LIBRT_CFLAGS, LIBBN_LIBS, LIBBN_CPPFLAGS,
LIBBN_CFLAGS, etc |
02:14.01 |
starseeker |
come to think of it... |
02:14.30 |
starseeker |
yeah, there might be a way to handle it
there |
02:14.39 |
starseeker |
will look into it
tomorrow |
02:14.51 |
brlcad |
LIBRT_LDFLAGS might be different from
LIBRT_LIBS |
02:15.07 |
brlcad |
-lrt vs deps -lbn -lbu -ltcl ... |
02:15.19 |
starseeker |
cmake uses full paths for most
things |
02:15.37 |
starseeker |
I can recognize when I'm looking at a full
path (do so for the distcheck logic) |
02:15.49 |
brlcad |
path isn't the issue |
02:16.09 |
brlcad |
it's what libraries are added to the link line
(and in what order if you want to get pedantic) |
02:16.26 |
starseeker |
I was thinking to use the list of libraries
passed to BRLCAD_EXEC |
02:17.09 |
starseeker |
couple ideas, actually |
02:17.10 |
brlcad |
right, but then if libraries are self-aware of
their dependencies (and they are) |
02:17.31 |
brlcad |
then you wouldn't need to specify all the
(potential) dependencies any time a library is used |
02:17.58 |
brlcad |
like my example above -- kind of silly to list
libbn and libbu since librt requires them |
02:18.11 |
starseeker |
oh, I see... |
02:18.14 |
starseeker |
different issue |
02:18.16 |
brlcad |
I couldv'e queried a var set by librt that
told me bn, bu, etc |
02:18.36 |
brlcad |
that could greatly reduce redundancy
throughout the build files |
02:19.06 |
starseeker |
nods... again less explicit
though |
02:19.55 |
brlcad |
yet less error-prone too |
02:20.20 |
brlcad |
most devs don't think very long about what the
actual libs are, they copy-paste another similar and add libs until
it compiles |
02:20.40 |
starseeker |
true... the way we're trending here though,
I'm going to *have* to write up some sort of detailed overview of
what we're doing and why |
02:21.42 |
starseeker |
granting there are usually good reasons for
what's being done, the further we get from "vanilla" the greater
the hurdles become for a newbie to figure out what's happening and
why |
02:22.08 |
brlcad |
already warranted with any custom macro --
it's obvious to you now because you wrote it and you still
remember |
02:22.19 |
starseeker |
right |
02:22.38 |
starseeker |
in fact, for a lot of reasons I'd *better* do
it now |
02:22.51 |
starseeker |
's memory is...
quirky |
02:23.13 |
brlcad |
might let you clean out some unnecessary
macros too if you attempt to document them :) |
02:23.24 |
brlcad |
"oh yeah .. no longer need this one" |
02:23.48 |
starseeker |
heh - one of the fundamental arguments for
literate programming, actually - "if I have to explain to a human
what I'm trying to do, it's hard to hide the stupid parts
:-P" |
02:24.00 |
brlcad |
it actually looks like you already do some
sort of lib dependency expansion in BRLCAD_ADDEXEC |
02:24.32 |
starseeker |
uh... where are you looking? |
02:24.45 |
brlcad |
just looking at some binaries |
02:24.53 |
brlcad |
src/rt/CMakeLists.txt for example |
02:25.04 |
brlcad |
no mention of libbu, but guarantee they all
use it |
02:25.29 |
starseeker |
actually that's probably just dumb
luck |
02:25.35 |
brlcad |
heh |
02:25.53 |
brlcad |
enfeeds |
02:26.43 |
starseeker |
that list is passed pretty much as-is to
target_link_libraries - did it mainly because it cut a few hundred
add_executable/target_link_libraries/install triplets down to a
one-liner |
02:27.10 |
starseeker |
s/a one-liner/one-liners/ |
02:27.20 |
starseeker |
yeah, gotta get outta here |
02:34.59 |
*** join/#brlcad Technicus
(~Technicus@DSLPool-net208-2.wctc.net) |
03:14.39 |
*** join/#brlcad Technicus
(~Technicus@DSLPool-net208-2.wctc.net) |
04:13.23 |
CIA-61 |
BRL-CAD: 03brlcad * r47609
10/brlcad/trunk/NEWS: nick added a new -r orientation option for
the obj-g importer so you can specify 1/2/3 as values for
unoriented, ccw, and cw orientation. |
05:26.30 |
brlcad |
starseeker: then I'd wonder if cmake is doing
some expansion for us since the libs deps are listed with the libs
and it expands correctly |
05:26.48 |
brlcad |
either way, somehow it's happening now, so
that's a good sign |
05:27.12 |
brlcad |
installs cmake on gcc12
(openbsd sparc64) |
06:26.23 |
*** join/#brlcad milamber
(~devlin@d118-75-244-176.try.wideopenwest.com) |
07:42.45 |
*** join/#brlcad merzo
(~merzo@193.254.217.44) |
11:50.28 |
CIA-61 |
BRL-CAD: 03erikgreenwald * r47610
10/brlcad/trunk/include/bu.h: add missing #endif |
12:12.02 |
``Erik |
hm, anne mccaffrey passed |
12:13.06 |
``Erik |
doom3 source released, too |
13:36.21 |
*** join/#brlcad KimK
(~Kim__@209.248.147.2.nw.nuvox.net) |
16:37.07 |
*** join/#brlcad Technicus
(~Technicus@DSLPool-net208-2.wctc.net) |
16:37.07 |
*** join/#brlcad 77CAA2ALN
(~Technicus@DSLPool-net208-2.wctc.net) |
16:59.53 |
CIA-61 |
BRL-CAD: 03brlcad * r47611
10/brlcad/trunk/HACKING: gentoo folks moved brl-cad from sci-misc
to media-gfx |
17:32.32 |
brlcad |
starseeker: any technical reason for the lack
of blank lines in the cmake files? |
17:33.17 |
starseeker |
uh... not really |
17:33.31 |
brlcad |
k |
17:34.04 |
starseeker |
can't think of any offhand, although there may
be a few cases where it matters (messages can't have stray
end-of-line characters, for example...) |
17:34.29 |
starseeker |
or rather, they can but it messes with the
formatting of the printed result |
17:41.19 |
brlcad |
that's fine, it's more whether there was some
reason the logic or macros prohibited it |
17:42.37 |
brlcad |
like a C file without blank lines, a bit of a
readability hindrance |
18:12.40 |
CIA-61 |
BRL-CAD: 03brlcad * r47612
10/brlcad/trunk/misc/CMake/ (BRLCAD_CompilerFlags.cmake
CompilerFlags.cmake): relax the comparisons to substring
matches |
18:14.22 |
CIA-61 |
BRL-CAD: 03brlcad * r47613
10/brlcad/trunk/CMakeLists.txt: similar, relax string comparisons.
makes the unknown value test a little more robust |
18:18.12 |
CIA-61 |
BRL-CAD: 03brlcad * r47614
10/brlcad/trunk/misc/CMake/ThirdParty_TCL.cmake: trying to make
some sense of the logic, add ws for readability |
18:29.43 |
CIA-61 |
BRL-CAD: 03brlcad * r47615
10/brlcad/trunk/misc/CMake/ThirdParty_TCL.cmake: simplify logic
with relaxed substring searching |
18:41.02 |
CIA-61 |
BRL-CAD: 03brlcad * r47616
10/brlcad/trunk/misc/CMake/ThirdParty_TCL.cmake: more logic
simplification. reorder IF/ELSE to avoid needing NOT, eliminate
need for multiple comparisons by using substring comparison. reword
cache string to indicate what action is being taken. |
18:42.44 |
CIA-61 |
BRL-CAD: 03starseeker * r47617
10/brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: |
18:42.44 |
CIA-61 |
BRL-CAD: Make an initial stab at support for
library-wide usage of <LIB>_DLL_IMPORTS |
18:42.44 |
CIA-61 |
BRL-CAD: approach to building with MSVC. This
is just hte macro logic and (for the |
18:42.44 |
CIA-61 |
BRL-CAD: moment, until the rest of this is
worked out) the Windows build is almost |
18:42.44 |
CIA-61 |
BRL-CAD: certainly well and truly
busted. |
18:48.13 |
CIA-61 |
BRL-CAD: 03starseeker * r47618
10/brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: remove debug prints
for now. |
18:48.38 |
CIA-61 |
BRL-CAD: 03brlcad * r47619
10/brlcad/trunk/misc/CMake/ThirdParty.cmake: |
18:48.39 |
CIA-61 |
BRL-CAD: big restructuring in support of
better reporting for whether bundled or sys libs |
18:48.39 |
CIA-61 |
BRL-CAD: are being used (and why). few cases
weren't being handled and the string |
18:48.39 |
CIA-61 |
BRL-CAD: STREQUAL testing was causing cmake to
report warnings. simplify string |
18:48.39 |
CIA-61 |
BRL-CAD: comparisons to substrings where
applicable, reduce/reorder logic for clarity, |
18:48.39 |
CIA-61 |
BRL-CAD: and reword messages for
consistency. |
18:52.33 |
CIA-61 |
BRL-CAD: 03starseeker * r47620
10/brlcad/trunk/misc/CMake/ThirdParty.cmake: stray duplicate
comment line |
19:01.05 |
CIA-61 |
BRL-CAD: 03brlcad * r47621
10/brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: |
19:01.06 |
CIA-61 |
BRL-CAD: sync up with the same that was done
for ThirdParty_Tcl.cmake using consistent |
19:01.06 |
CIA-61 |
BRL-CAD: printing statements (e.g., they might
not be libs), relax to substring matching |
19:01.06 |
CIA-61 |
BRL-CAD: and reduced logic where we can.
inject blank lines, separators, and comments |
19:01.06 |
CIA-61 |
BRL-CAD: for improved readabaility. |
19:09.19 |
CIA-61 |
BRL-CAD: 03starseeker * r47622
10/brlcad/trunk/include/ (22 files): Convert all the include
headers to the <LIB>_DLL_IMPORTS format |
19:15.34 |
CIA-61 |
BRL-CAD: 03brlcad * r47623
10/brlcad/trunk/misc/CMake/ (33 files): |
19:15.34 |
CIA-61 |
BRL-CAD: as these are build system
infrastructure and not actual build rules, they should |
19:15.34 |
CIA-61 |
BRL-CAD: include the requisite license headers
and footers like any other source file. |
19:15.34 |
CIA-61 |
BRL-CAD: CMakeLists.txt don't need the
wrapping, but macro files should |
19:26.11 |
starseeker |
brlcad: uh... - a lot of those Find* cmake
macro files are based on other macro files, might want to be
careful |
19:26.43 |
starseeker |
I'd have to dig back to make sure, but I think
at least FindGL, FindX11 and FindYACC are based off of other
macros |
19:27.02 |
starseeker |
I was waiting until things settled to do a
thorough review of all of that |
19:38.47 |
CIA-61 |
BRL-CAD: 03brlcad * r47624
10/brlcad/trunk/autogen.sh: given the magnitude of impact, add a
massive deprecation notice to begin our requisite deprecation
notification process. refer them to the INSTALL file for now since
there's not (yet?) an equivalent step |
19:39.23 |
``Erik |
is seeing tons of cmake
breakage right now, http://paste.lisp.org/display/126045 |
19:39.48 |
brlcad |
legally, that needs to happen asap and should
have happened before a release was made with them |
19:40.17 |
starseeker |
k - I'll do a scan-through |
19:41.21 |
brlcad |
if they are mererly bundled for convenience,
our header should be pulled or appended after theirs |
19:41.36 |
starseeker |
most of them are tweaked |
19:41.52 |
starseeker |
maybe all of them |
19:45.34 |
brlcad |
if it's not significant (like no logic
changes, just additions of paths, removal of code, or just a couple
lines) then our header is arguably not necessary |
19:47.19 |
brlcad |
``Erik: your build failure looks related to
r47617, work in progress .. though my build curiously worked, maybe
I need to wipe cache to hit it |
19:47.58 |
CIA-61 |
BRL-CAD: 03starseeker * r47625
10/brlcad/trunk/misc/CMake/ (BRLCAD_Util.cmake
CheckCFileRuns.cmake): Add the full license text for
ChechCFileRuns.cmake - need to fix up the rest of the Kitware-based
files to have the full BSD license txt. |
19:51.05 |
brlcad |
starseeker: do they use the same 3-clause
license? |
19:53.03 |
brlcad |
if they do, there can just be 2 copyright
lines instead of two copies of the text |
19:53.07 |
starseeker |
I believe so, give or take some minor wording
and formatting... |
19:53.19 |
starseeker |
take a look at CheckCFileRuns.cmake, it's got
both |
19:54.06 |
CIA-61 |
BRL-CAD: 03starseeker * r47626
10/brlcad/trunk/misc/CMake/CheckPrototypeExists.cmake:
CheckPrototypeExists.cmake is from KDE, flesh out their BSD license
and add a link to the file origin |
19:59.30 |
CIA-61 |
BRL-CAD: 03brlcad * r47627
10/brlcad/trunk/autogen.sh: move the deprecation section down so
we're more sure echo -n work. still before anything is
printed. |
20:00.51 |
CIA-61 |
BRL-CAD: 03starseeker * r47628
10/brlcad/trunk/misc/CMake/FindLEMON.cmake: FindLEMON was
originally based on FindBISON - note that fact. Trying to stay
close to the formatting of 'standard' CMake modules for those that
we might have a hope of getting accepted into CMake proper at some
point. |
20:03.11 |
CIA-61 |
BRL-CAD: 03starseeker * r47629
10/brlcad/trunk/misc/CMake/FindLEX.cmake: FindLEX.cmake is
basically FindFLEX.cmake slightly generalized, and we already had
ourselves listed in the 'standard' CMake BSD license. We may not
even need this at all once the perplex/re2c/lemon work is
complete... |
20:04.07 |
starseeker |
mutter... looks like I got some of them
"properly" containing the full license, but missed a few |
20:04.44 |
starseeker |
I think in the GL/X11 case I might have been
hoping to get the changes accepted back... ah well, no
matter |
20:08.22 |
CIA-61 |
BRL-CAD: 03starseeker * r47630
10/brlcad/trunk/misc/CMake/ (FindGL.cmake FindX11.cmake
FindZLIB.cmake): Add the rest of the 'full' licenses for the
Kitware stuff - was hoping to commit these changes back to Kitware,
but either way we'll have to hang on to these until we can require
a modern enough CMake with the changes. |
20:15.29 |
CIA-61 |
BRL-CAD: 03brlcad * r47631
10/brlcad/trunk/configure.ac: add a similar massive deprecation
notice with an annoying pause to configure. |
20:18.38 |
CIA-61 |
BRL-CAD: 03brlcad * r47632
10/brlcad/trunk/configure.ac: put a deprecation notice in the
summary too since most people actually read it. |
20:23.06 |
CIA-61 |
BRL-CAD: 03brlcad * r47633
10/brlcad/trunk/Makefile.am: last one, repeat the deprecation
warning when they run autotools make too. |
20:58.01 |
CIA-61 |
BRL-CAD: 03brlcad * r47634
10/brlcad/trunk/src/rt/view.c: |
20:58.01 |
CIA-61 |
BRL-CAD: can't compile due to cmake errors,
but add an ambOffset parameter so you can |
20:58.01 |
CIA-61 |
BRL-CAD: control how far we pull away from a
surface before shooting ambient rays. this |
20:58.01 |
CIA-61 |
BRL-CAD: is intended to help 'smooth out'
shots against polygonal models where you get |
20:58.01 |
CIA-61 |
BRL-CAD: artifacts from hitting
nearby/neighboring polygons. |
20:58.09 |
starseeker |
reflects that with the new
open source SCL activity, he's probably going to need to beef up
the FindSCL macro... |
21:02.04 |
CIA-61 |
BRL-CAD: 03brlcad * r47635
10/brlcad/trunk/src/rt/view.c: reduce the code duplication in
ambient occlusion. pulling the branch out of both loops is
inconsequential to performance in the long term. |
21:02.45 |
CIA-61 |
BRL-CAD: 03starseeker * r47636
10/brlcad/trunk/ (9 files in 9 dirs): This should get the build
working again on non Windows platforms... also, start the process
of clearing out BRLCAD_DLL |
21:04.18 |
starseeker |
brlcad: something else is busted -
LEMON_EXECUTABLE is set to NOTFOUND |
21:06.10 |
starseeker |
and the global BRLCAD_BUNDLED_LIBS flag being
set to bundled isn't turning everything on anymore |
21:20.18 |
brlcad |
curious, I didn't modify FindLEMON |
21:21.15 |
brlcad |
the BRLCAD_BUNDLED_LIBS isn't too surprising,
couldn't test it with the breakage and the logic in BRLCAD_Util
seems quite a mess.. |
21:40.14 |
brlcad |
looks like the problem is actually in
ThirdParty, fix forthcoming |
21:42.22 |
CIA-61 |
BRL-CAD: 03bob1961 * r47637
10/brlcad/trunk/include/ged.h: Added gdps_scale to
ged_data_polygon_state. |
21:52.05 |
*** join/#brlcad jordisayol
(~jordisayo@unaffiliated/jordisayol) |
21:58.59 |
CIA-61 |
BRL-CAD: 03brlcad * r47638
10/brlcad/trunk/misc/CMake/ThirdParty.cmake: getting a feel for how
the aggregate BRLCAD_BUNDLED_LIBS was implemented. this makes
ccmake report proper propagation of the parent BUNDLED (AUTO)
setting (but still keying off AUTO at higher precedence than
BUNDLED). |
22:35.56 |
CIA-61 |
BRL-CAD: 03brlcad * r47639
10/brlcad/trunk/misc/CMake/ThirdParty.cmake: |
22:35.57 |
CIA-61 |
BRL-CAD: this seems to get things back to
working for the parent BRLCAD_BUNDLED_LIBS |
22:35.57 |
CIA-61 |
BRL-CAD: option. wasn't accounting for a stray
STREQUAL in the parent logic and wasn't |
22:35.57 |
CIA-61 |
BRL-CAD: setting the ON/OFF variable
consistently with the statements being printed |
22:48.01 |
CIA-61 |
BRL-CAD: 03brlcad * r47640
10/brlcad/trunk/misc/CMake/ThirdParty.cmake: |
22:48.01 |
CIA-61 |
BRL-CAD: if BRLCAD_BUNDLED_LIBS is set to
SYSTEM and system-installed libs aren't |
22:48.01 |
CIA-61 |
BRL-CAD: available, it's not our problem --
let them proceed as if it was installed and |
22:48.01 |
CIA-61 |
BRL-CAD: found since that's what they asked
for. perhaps useful for distribution |
22:48.01 |
CIA-61 |
BRL-CAD: debugging. |
22:52.34 |
CIA-61 |
BRL-CAD: 03brlcad * r47641
10/brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: mark BRLCAD_LIBS as
advanced |
23:16.09 |
CIA-61 |
BRL-CAD: 03brlcad * r47642
10/brlcad/trunk/src/other/ (re2c/CMake/FindLEMON.cmake
step/CMake/FindLEMON.cmake): sync top-level cmake file |
23:46.32 |
CIA-61 |
BRL-CAD: 03starseeker * r47643
10/brlcad/trunk/misc/CMake/ThirdParty.cmake:
LIBRARY->EXECUTABLE |