Jeff Epler
d39fbaf4d7
sc_version_string: Use temporary names resilient against parallel builds
...
In #359 I identify a race condition between multiple parallel invocations
of cmake, which can arise naturally during ctests. Now that the file
contents will not change without an intervening git commit, it is
sufficient to ensure that the parallel invocations use distinct temporary
file names with high probability.
2017-08-21 08:31:05 -05:00
Jeff Epler
e422262877
sc_version_string: omit the date and time when testing
...
As analyzed in #359 , if the header contains the current time, it will
be updated while running the testsuite; this, in turn, causes multiple
cmake processes to attempt to update targets like lib/libexpress.so.2.0.0
at the same time, causing test failures.
2017-08-21 08:31:00 -05:00
Jeff Epler
0fbc3c0c84
Fix build error with g++ 6.3 (Debian Stretch)
...
On this platform, TEST_NULLPTR fails, even though nullptr and
nullptr_t are supported:
/home/jepler/src/stepcode/build/CMakeFiles/CMakeTmp/src.cxx:4:23:
error: converting to 'bool' from 'std::nullptr_t'
requires direct-initialization [-fpermissive]
int main() {return !!f();}
~^~
Subsequent to this failure, the workaround definitions in sc_nullptr.h
prevent standard C++ headers (which must refer to real nullptr) to fail.
The failure occurs because the C++ standard apparently does not state
that operator! may be used on nullptr. Despite this, some compilers
have historically allowed it. g++ 6.3's behavior appears to be aligned
with the standard.
As requested by @brlcad, ensure that the function 'f' is used from main,
to avoid a clever (but not nullptr-supporting) compiler from somehow
skipping 'f' altogether, creating a false positive for nullptr support.
2017-08-15 06:50:56 -05:00
Cliff Yapp
8627627c5e
Add an option to completely bypass the git management of the version header.
2016-08-06 13:53:12 -04:00
Cliff Yapp
9b091756b1
Allow the user to control whether C++11 is used (matters for subbuilds)
2016-08-06 13:02:35 -04:00
Cliff Yapp
5c7e63c75b
Fix macro comments. This approach to managing the targets varies from the old EXCLUDE_OR_INSTALL setup in that by default the testable targets are not added to the 'all' build - in other works, 'make' will make just the main stepcode targets. The testable targets are available individually, and if SC_ENABLE_TESTING is enabled they *will* be added to the 'all' target, but by default they are not compiled in the basic build.
2016-08-06 12:32:12 -04:00
Cliff Yapp
a243b4d8c8
Separate shared and static generated files for better parallel building safety.
2016-08-06 11:55:38 -04:00
Cliff Yapp
daec3e2640
Add option handling to the SC target macros, replacing the EXCLUDE_FROM_INSTALL macro.
2016-08-06 11:43:59 -04:00
Cliff Yapp
06b13bb9af
Make a stab at adapting the new, simplier verification to vanilla stepcode
2016-08-06 11:23:34 -04:00
Cliff Yapp
e38519a7f1
Update Find cmake scripts
2016-08-06 10:53:19 -04:00
Cliff Yapp
12def15dd2
Start working on merging BRL-CAD changes back into upstream.
2016-08-06 10:46:23 -04:00
Mark Pictor
bc5533bda8
test for, and use, nullptr if we have it
2015-08-03 21:37:28 -04:00
Mark Pictor
458b775f41
simplify cmake logic - use set_property(...APPEND...) rather than get/list append/set
2015-08-02 14:30:01 -04:00
Mark Pictor
17b41da525
add std::chrono test, if available use in thread test
2015-07-26 22:22:44 -04:00
Mark Pictor
135adc76c8
fix warning, improve cmake messages
2015-07-26 20:49:04 -04:00
Mark Pictor
017faa942f
make schema-specific tests work on cmake 3.x
2015-07-26 20:49:04 -04:00
Mark Pictor
1aa78e7e48
make appveyor happier
2015-06-08 22:40:38 -04:00
Mark Pictor
6ec39b58aa
rework version_string logic - only write the file if the git commit (not timestamp) changes
2015-01-26 21:24:14 -05:00
Mark Pictor
409315841b
fix test dependency so 'make test ARGS=-jN' works
2014-12-26 13:29:07 -05:00
Cliff Yapp
f72e01e610
Apply BRL-CAD change r61607 - Harden verify_generated.cmake.in to odd pathnames
2014-08-17 23:25:03 -04:00
Cliff Yapp
63298df542
Until we reach a final decision on what to do about the schema_scanner, handle the .exe case
2014-08-01 21:04:23 -04:00
Cliff Yapp
e649757417
Install schema headers in locations that match the build tree hierarchy, so include directives will work both with in-build-tree and installed stepcode layouts.
2014-07-31 21:26:57 -04:00
Jason W. DeGraw
9aa3b4201f
Add CMAKE_GENERATOR to schema scanner build
...
Command line configuration with MinGW on Windows was failing
in schemaScanner.cmake because the generator wasn't getting
passed through to the build of the scanner. This commit adds
the generator to the scanner build command and fixes #295 .
2014-04-19 14:38:12 -04:00
Cliff Yapp
6d57acff5b
Apparently get_filename_component needs some help when it comes to windows drive names.
2014-04-08 21:22:55 -04:00
Cliff Yapp
5abaebb04b
Try to make the RELATIVE_PATH_TO_TOPLEVEL macro robust for out-of-src-dir situations.
2014-03-29 12:24:44 -04:00
Mark
2338dd11e1
increase schema scanner config/build timeouts
...
config is slow on windows and the 10s limit caused intermittent failures
2014-03-02 15:44:33 -05:00
Mark Pictor
cd0d8b496b
cannot treat the schema scanner source as a config file, so add /*WARNING*/
2014-03-01 11:53:31 -05:00
Mark Pictor
4d945de475
perplex/lemon/re2c not found messages can confuse users
...
make find_package quiet for all 3, then if all were found, print a message
to that effect.
2014-03-01 11:53:30 -05:00
Mark Pictor
bbe607be60
fix copy/paste error in cmake message
2014-03-01 11:53:30 -05:00
Mark Pictor
38467bdca3
add build logic for unity builds (mostly in generated CMLists)
2014-03-01 11:53:30 -05:00
Mark Pictor
78d99f2f4e
change generated CMLists ws to better match starseeker's ws
2014-03-01 11:53:30 -05:00
Mark Pictor
5c021b2b7f
tests were broken because macro name changed
...
make two variables CACHE INTERNAL so that their values are available in other scopes (i.e. in test dirs)
2014-03-01 11:53:30 -05:00
Cliff Yapp
f4ac673b71
whitespace and case changes on .cmake files
2014-03-01 11:53:30 -05:00
Cliff Yapp
44e02c957a
whitespace changes
2014-03-01 11:53:30 -05:00
Cliff Yapp
c0e74a9eef
Add CMake footer comment to CMake files
2014-02-28 22:06:09 -05:00
Mark Pictor
a7579f0bc9
remove helper function header - code moved to headers for individual types/entities
2014-02-28 22:02:07 -05:00
davyw
492f455598
allow schema scanner to build on windows
2014-02-28 22:02:07 -05:00
Mark Pictor
2ccc5ce360
add underscore to schema shortname for readability - Sdai -> Sdai_
2014-02-28 22:02:07 -05:00
Mark Pictor
05a74dedd8
change code generation message a bit
2014-02-28 22:02:07 -05:00
Mark Pictor
5043c035a3
renamed enums, selects don't get their own files
2014-02-28 22:02:07 -05:00
Mark Pictor
426e2b4ab3
add two cmake messages
2014-02-28 22:02:07 -05:00
Mark Pictor
2d651bfad4
unnecessary variable in a macro
2014-02-28 22:02:07 -05:00
starseeker
c6f0c44a02
print file count, not list of all files, when generating.
2014-02-28 22:02:07 -05:00
starseeker
6533032fd9
workaround makefile corruption by changing how file lists are handled
2014-02-28 22:02:07 -05:00
Mark Pictor
26822ef959
exp2cxx wasn't running because script args were handled incorrectly
2014-02-28 22:02:07 -05:00
Mark Pictor
86f884b399
TODO
2014-02-28 22:02:06 -05:00
Mark Pictor
4fd5dd9f74
improve cmake comments, user messages
2014-02-28 22:02:06 -05:00
Mark Pictor
b320bfe3f7
generate a short schema name in the schema scanner
...
this name is one of:
* the schema file name without extension,
* the schema dir name if in sc/data/ and 3+ chars
* or the official schema name on the SCHEMA line.
2014-02-28 22:02:06 -05:00
Mark Pictor
34d917fb19
update scanner to match renamed schema macros file
2014-02-28 22:02:06 -05:00
Mark Pictor
86bae779b0
inching forward on schema scanner
2014-02-28 22:02:06 -05:00