Re: [CMake] Building ROOT into Geant4 Application

2017-12-06 Thread R0b0t1
Mr. Odera,

On Wed, Dec 6, 2017 at 2:40 PM, Dim, Odera U  wrote:
> Hi CMake Experts,
>
>
> Please I use CMake to build my Geant4 applications with no issues. However,
> recently I needed to build ROOT into my Geant4 application for the purpose
> of extracting and processing simulation data. I have followed the many
> instructions which exist online both on the Genat4 and ROOT sides but none
> seems to produce the required results. The issue i'm having I believe is
> related to the linkage of both Geant4 and ROOT libraries top the generated
> executable during compilation. I am able to configure and generate build
> files with a CMakeLists with no errors. Compilation also seems to also
> complete with no errors but when I run the application I get an error which
> specifies that LLVM are exposed to Cling and so I need to hide them. In my
> CMakeLists (which I can provide to you) I do not explicitly link Cling to my
> executable all I do is link the executable to ROOT libraries
> (${ROOT_LIBRARIES}). Please, could you help me with this issue or do you
> know a way that I could link libraries and not expose LLVM to Cling? Thank
> you.
>

Can you provide the text of the errors as they are given? Are you
experiencing build errors, or are you wanting to quiet runtime
messages?

Which OS are you compiling and running on? Which build instructions
are you following? What are the build commands that you ran? Are you
using Clang, and is it necessary that you use Clang?

If we can't resolve your problem here it is possible I can refer you
to someone off-list, but I am not entirely sure what difficulty you
are having.

Cheers,
 R0b0t1
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


[Cmake-commits] CMake branch, master, updated. v3.10.0-548-gf5e48ed

2017-12-06 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
   via  f5e48edaae37fbf9afa668671b3a8d3e5537321b (commit)
  from  92910e282adedff8c2dba488db84fb917318bb5b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f5e48edaae37fbf9afa668671b3a8d3e5537321b
commit f5e48edaae37fbf9afa668671b3a8d3e5537321b
Author: Kitware Robot <kwro...@kitware.com>
AuthorDate: Thu Dec 7 00:01:14 2017 -0500
Commit: Kitware Robot <kwro...@kitware.com>
CommitDate: Thu Dec 7 00:01:14 2017 -0500

CMake Nightly Date Stamp

diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index bb18741..ae3bb06 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,5 +1,5 @@
 # CMake version number components.
 set(CMake_VERSION_MAJOR 3)
 set(CMake_VERSION_MINOR 10)
-set(CMake_VERSION_PATCH 20171206)
+set(CMake_VERSION_PATCH 20171207)
 #set(CMake_VERSION_RC 1)

---

Summary of changes:
 Source/CMakeVersion.cmake |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits


[CMake] Building ROOT into Geant4 Application

2017-12-06 Thread Dim, Odera U
Hi CMake Experts,


Please I use CMake to build my Geant4 applications with no issues. However, 
recently I needed to build ROOT into my Geant4 application for the purpose of 
extracting and processing simulation data. I have followed the many 
instructions which exist online both on the Genat4 and ROOT sides but none 
seems to produce the required results. The issue i'm having I believe is 
related to the linkage of both Geant4 and ROOT libraries top the generated 
executable during compilation. I am able to configure and generate build files 
with a CMakeLists with no errors. Compilation also seems to also complete with 
no errors but when I run the application I get an error which specifies that 
LLVM are exposed to Cling and so I need to hide them. In my CMakeLists (which I 
can provide to you) I do not explicitly link Cling to my executable all I do is 
link the executable to ROOT libraries (${ROOT_LIBRARIES}). Please, could you 
help me with this issue or do you know a way that I could link libraries and 
not expose LLVM to Cling? Thank you.


Dim Odera

UMass Lowell
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

[CMake] CMake 3.10 adding mystery source file to target?

2017-12-06 Thread Michael Jackson
I just tried to configure our project with CMake 3.10 and got some errors. The 
same project configures fine with CMake 3.8.x and 3.9.x as evidenced here 
(http://my.cdash.org/index.php?project=DREAM3D).

I get an error about a Qt5 qrc generated file not being found. 

-- Configuring done
CMake Error in 
/Users/mjackson/Workspace/DREAM3D_Plugins/AskNDEToolbox/Applications/ScanViewer/CMakeLists.txt:
  Cannot find source file:


/Users/mjackson/Workspace/DREAM3D-Build/3.10/Plugins/AskNDEToolbox/qrc_AskNDEToolbox.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


-- Generating done
-- Build files have been written to: 
/Users/mjackson/Workspace/DREAM3D-Build/3.10


But the issue is that if I actually print out all the source files for the " 
ScanViewer " taget, "qrc_AskNDEToolbox.cpp" NEVER shows up? There is another 
target that uses that file but NOT ScanViewer.

I am also getting some errors on the same project but on Windows (the previous 
was on macOS Sierra) where some of our plugins that get configured all of a 
sudden cannot find some of their files. I have not tried on Linux x64 yet to 
figure out if anything is broken on that side. 

Thanks for any information anyone may have. Thoughts. Ideas. All are welcome.

--
Michael Jackson | Owner, President
  BlueQuartz Software
[e] mike.jack...@bluequartz.net
[w] www.bluequartz.net


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


Re: [CMake] [CMAKE] - custom compiler for Android

2017-12-06 Thread Ramya G via CMake
HI Brad,

Thank you for the response
However we want more guidance on how do we start with the changes needed for
the compiler support

To be more clear, we are trying to build support for the embarcadero
compilers bccaarm.exe. To give more insight on the work and our query, we
have attached a working toolchain that we created and works fine with CMAKE
and the compiler. But we have given the system name CMAKE_SYSTEM_NAME as
"_Android"
Since we havent given it as "Android", it reads all the libraries and the
compilers from our toolchain file and gives the desired output. 

Can you please give us some guidance to achieve the same with
CMAKE_SYSTEM_NAME as "Android"

Thanks & Regards,
Ramya

-Original Message-
From: Brad King [mailto:brad.k...@kitware.com] 
Sent: Wednesday, December 06, 2017 1:24 AM
To: ramya.gopalkris...@accoliteindia.com
Cc: CMake@cmake.org; 'Sumit Chourasia' 
Subject: Re: [CMAKE] - custom compiler for Android

On 12/05/2017 12:05 PM, ramya.gopalkris...@accoliteindia.com wrote:
> Please validate our current understanding when a toolchain file or 
> command-line option sets CMAKE_SYSTEM_NAME to "Android"

You may find this note helpful:

  https://gitlab.kitware.com/cmake/cmake/issues/16708#note_300971

> Ideally, we want our toolchain file to tell cmake the libraries to 
> include/link and the compilers to use.

Toolchain files can set the path to compilers on the host, but
target-platform-wide information like the set of libraries and include
directories to use typically belongs in platform information modules (e.g.
`Platform/Android-...` and the like).

> But once, System has been determined as android, cmake goes through 
> the above sequence of events and expects toolchains to be specified 
> for either clang, gcc or llvm compilers.

We try to support the compilers that come with the NDK out of the box.
More work may be needed to support other compilers, just as would be the
case for any new platform or new compiler.

> Determine-Compiler-NDK.cmake  - We would need to add support for an 
> "NewCompiler Toolchain" which would contain android libraries and
compilers.

Since your compiler doesn't come with the NDK, perhaps you could look at
using the standalone toolchain mode.

> New Android-{NewCompiler}-C.cmake, Android-{ NewCompiler }-CXX.cmake, 
> Android-{ NewCompiler }.cmake and another appropriate toolchain file 
> to set target architecture and compiler flags.

If you have some new compiler then something like that would be needed.
This would be the case for a new compiler on any platform.

-Brad


bccaarm.cmake
Description: Binary data
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

[Cmake-commits] CMake branch, master, updated. v3.10.0-547-g92910e2

2017-12-06 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
   via  92910e282adedff8c2dba488db84fb917318bb5b (commit)
   via  dd792b08b50d17ea4d3ff5ba17bec45550a8ed16 (commit)
   via  060cf73ec8c2d5d73d698b1ff547d425d8ec7eb3 (commit)
   via  6ecd8b601b6c09d1f07bf5b2ae0cec694522d2c7 (commit)
   via  9432f686e62082045f53bd0ec8f8911966476df1 (commit)
   via  0418e91f7d77e540b1e7accc9af4d6cd28b2e71f (commit)
   via  64184762f4daa69785592d890a7caf7dbb498817 (commit)
  from  98206571fb68881fe373c040ae703aac318fe6d7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92910e282adedff8c2dba488db84fb917318bb5b
commit 92910e282adedff8c2dba488db84fb917318bb5b
Merge: dd792b0 0418e91
Author: Brad King 
AuthorDate: Wed Dec 6 08:07:37 2017 -0500
Commit: Brad King 
CommitDate: Wed Dec 6 08:07:37 2017 -0500

Merge branch 'release-3.10'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dd792b08b50d17ea4d3ff5ba17bec45550a8ed16
commit dd792b08b50d17ea4d3ff5ba17bec45550a8ed16
Merge: 060cf73 6ecd8b6
Author: Brad King 
AuthorDate: Wed Dec 6 13:06:30 2017 +
Commit: Kitware Robot 
CommitDate: Wed Dec 6 08:06:33 2017 -0500

Merge topic 'doc-lang-order'

6ecd8b60 Help: Document that ASM should be enabled last

Acked-by: Kitware Robot 
Merge-request: !1560


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=060cf73ec8c2d5d73d698b1ff547d425d8ec7eb3
commit 060cf73ec8c2d5d73d698b1ff547d425d8ec7eb3
Merge: 9820657 9432f68
Author: Brad King 
AuthorDate: Wed Dec 6 13:05:25 2017 +
Commit: Kitware Robot 
CommitDate: Wed Dec 6 08:05:31 2017 -0500

Merge topic 'src-COMPILE_DEFINITIONS-genex'

9432f686 Add generator expression support to per-source COMPILE_DEFINITIONS

Acked-by: Kitware Robot 
Merge-request: !1546


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ecd8b601b6c09d1f07bf5b2ae0cec694522d2c7
commit 6ecd8b601b6c09d1f07bf5b2ae0cec694522d2c7
Author: Brad King 
AuthorDate: Wed Dec 6 06:48:06 2017 -0500
Commit: Brad King 
CommitDate: Wed Dec 6 06:48:06 2017 -0500

Help: Document that ASM should be enabled last

ASM should be enabled after C and/or CXX because we consider the
compilers for those languages as possible assemblers.

Issue: #17532

diff --git a/Help/command/enable_language.rst b/Help/command/enable_language.rst
index 871ac4e..61dfc03 100644
--- a/Help/command/enable_language.rst
+++ b/Help/command/enable_language.rst
@@ -10,7 +10,10 @@ Enable a language (CXX/C/Fortran/etc)
 This command enables support for the named language in CMake.  This is
 the same as the project command but does not create any of the extra
 variables that are created by the project command.  Example languages
-are CXX, C, Fortran.
+are ``CXX``, ``C``, ``CUDA``, ``Fortran``, and ``ASM``.
+
+If enabling ``ASM``, enable it last so that CMake can check whether
+compilers for other languages like ``C`` work for assembly too.
 
 This command must be called in file scope, not in a function call.
 Furthermore, it must be called in the highest directory common to all
diff --git a/Help/command/project.rst b/Help/command/project.rst
index 139f69c..eb185e4 100644
--- a/Help/command/project.rst
+++ b/Help/command/project.rst
@@ -46,11 +46,15 @@ variable will be set to its argument. The argument must be 
a string with short
 description of the project (only a few words).
 
 Optionally you can specify which languages your project supports.
-Example languages are ``C``, ``CXX`` (i.e.  C++), ``Fortran``, etc.
+Example languages include ``C``, ``CXX`` (i.e.  C++), ``CUDA``,
+``Fortran``, and ``ASM``.
 By default ``C`` and ``CXX`` are enabled if no language options are
 given.  Specify language ``NONE``, or use the ``LANGUAGES`` keyword
 and list no languages, to skip enabling any languages.
 
+If enabling ``ASM``, list it last so that CMake can check whether
+compilers for other languages like ``C`` work for assembly too.
+
 If a variable exists called :variable:`CMAKE_PROJECT__INCLUDE`,
 the file pointed to by that variable will be included as the last step of the
 project command.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9432f686e62082045f53bd0ec8f8911966476df1
commit 9432f686e62082045f53bd0ec8f8911966476df1
Author: Marc Chevrier 
AuthorDate: Thu Nov 30 15:06:21 2017 +0100
Commit: 

[Cmake-commits] CMake branch, release, updated. v3.10.0-14-g0418e91

2017-12-06 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, release has been updated
   via  0418e91f7d77e540b1e7accc9af4d6cd28b2e71f (commit)
   via  64184762f4daa69785592d890a7caf7dbb498817 (commit)
   via  2047eb360de5a9d2a8cac6a689bd7846c5a0128f (commit)
   via  bde7513d2fcd7a366eb4dd93fc1f061334743bb7 (commit)
  from  64713d4ca0ae864958ecdeaee9642488c3f2cbc7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
---

Summary of changes:
 Modules/FindMPI.cmake |   28 +---
 1 file changed, 17 insertions(+), 11 deletions(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits


[Cmake-commits] CMake branch, master, updated. v3.10.0-540-g9820657

2017-12-06 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
   via  98206571fb68881fe373c040ae703aac318fe6d7 (commit)
   via  22f440ae6930c8ef9eccfa65530c6b59949657ef (commit)
   via  b6dd3969e819a7a2508c8f705ef7e13fb7e11dff (commit)
   via  79b241dee076d594f5527a148142c0c15a5909dc (commit)
   via  4a8bbc520aa62187fb70aaf0c28daa67e275c26e (commit)
   via  52a5c4a877d066a283e76bd5b6e63a9f3eec31ea (commit)
   via  2047eb360de5a9d2a8cac6a689bd7846c5a0128f (commit)
   via  bde7513d2fcd7a366eb4dd93fc1f061334743bb7 (commit)
  from  a442624def318c950936c8d49964c4b3bfb0487d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=98206571fb68881fe373c040ae703aac318fe6d7
commit 98206571fb68881fe373c040ae703aac318fe6d7
Merge: 22f440a 79b241d
Author: Brad King 
AuthorDate: Wed Dec 6 13:00:48 2017 +
Commit: Kitware Robot 
CommitDate: Wed Dec 6 08:01:20 2017 -0500

Merge topic 'update-kwsys'

79b241de cmake-gui: Update RegexExplorer for changes to KWSys
4a8bbc52 Merge branch 'upstream-KWSys' into update-kwsys
52a5c4a8 KWSys 2017-12-05 (9376537e)

Acked-by: Kitware Robot 
Merge-request: !1558


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=22f440ae6930c8ef9eccfa65530c6b59949657ef
commit 22f440ae6930c8ef9eccfa65530c6b59949657ef
Merge: b6dd396 bde7513
Author: Brad King 
AuthorDate: Wed Dec 6 13:00:12 2017 +
Commit: Kitware Robot 
CommitDate: Wed Dec 6 08:00:46 2017 -0500

Merge topic 'findmpi-notfound-spam'

bde7513d FindMPI: Correct legacy variable handling

Acked-by: Kitware Robot 
Merge-request: !1557


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b6dd3969e819a7a2508c8f705ef7e13fb7e11dff
commit b6dd3969e819a7a2508c8f705ef7e13fb7e11dff
Merge: a442624 2047eb3
Author: Brad King 
AuthorDate: Wed Dec 6 13:00:01 2017 +
Commit: Kitware Robot 
CommitDate: Wed Dec 6 08:00:07 2017 -0500

Merge topic 'findmpi-found-cond'

2047eb36 FindMPI: Fix multiple configure runs

Acked-by: Kitware Robot 
Merge-request: !1556


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=79b241dee076d594f5527a148142c0c15a5909dc
commit 79b241dee076d594f5527a148142c0c15a5909dc
Author: Brad King 
AuthorDate: Tue Dec 5 11:32:08 2017 -0500
Commit: Brad King 
CommitDate: Tue Dec 5 11:32:08 2017 -0500

cmake-gui: Update RegexExplorer for changes to KWSys

diff --git a/Source/QtDialog/RegexExplorer.cxx 
b/Source/QtDialog/RegexExplorer.cxx
index abed70e..cb67f85 100644
--- a/Source/QtDialog/RegexExplorer.cxx
+++ b/Source/QtDialog/RegexExplorer.cxx
@@ -8,7 +8,7 @@ RegexExplorer::RegexExplorer(QWidget* p)
 {
   this->setupUi(this);
 
-  for (int i = 1; i < cmsys::RegularExpression::NSUBEXP; ++i) {
+  for (int i = 1; i < cmsys::RegularExpressionMatch::NSUBEXP; ++i) {
 matchNumber->addItem(QString("Match %1").arg(QString::number(i)),
  QVariant(i));
   }
@@ -105,7 +105,7 @@ void RegexExplorer::on_matchNumber_currentIndexChanged(int 
index)
   QVariant itemData = matchNumber->itemData(index);
   int idx = itemData.toInt();
 
-  if (idx < 1 || idx >= cmsys::RegularExpression::NSUBEXP) {
+  if (idx < 1 || idx >= cmsys::RegularExpressionMatch::NSUBEXP) {
 return;
   }
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4a8bbc520aa62187fb70aaf0c28daa67e275c26e
commit 4a8bbc520aa62187fb70aaf0c28daa67e275c26e
Merge: d06b826 52a5c4a
Author: Brad King 
AuthorDate: Tue Dec 5 11:31:27 2017 -0500
Commit: Brad King 
CommitDate: Tue Dec 5 11:31:27 2017 -0500

Merge branch 'upstream-KWSys' into update-kwsys

* upstream-KWSys:
  KWSys 2017-12-05 (9376537e)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52a5c4a877d066a283e76bd5b6e63a9f3eec31ea
commit 52a5c4a877d066a283e76bd5b6e63a9f3eec31ea
Author: KWSys Upstream 
AuthorDate: Tue Dec 5 11:30:36 2017 -0500
Commit: Brad King 
CommitDate: Tue Dec 5 11:31:27 2017 -0500

KWSys 2017-12-05 (9376537e)

Code extracted from:

https://gitlab.kitware.com/utils/kwsys.git

at commit 9376537ec0e4770a28f4b1705cfacf79650f71b6 (master).

Upstream Shortlog
-

Brad King (1):
  e9557f37 RegularExpression: Fix regression in 'find' method

[cmake-developers] For add_custom_command and add_custom_target does each COMMAND completely finish before the next COMMAND starts?

2017-12-06 Thread Alan W. Irwin

I asked the question in the subject line because I have been
obtaining some peculiar modification times to files.

The add_custom_command documentation states:



COMMAND

Specify the command-line(s) to execute at build time. If more than one
COMMAND is specified they will be executed in order, but not
necessarily composed into a stateful shell or batch script.


And the add_custom_target documentation says the same thing about its
COMMANDs.

The phrase "executed in order" is ambiguous because it could mean
either started execution in order with no waits until completion until the next
COMMAND is started or each COMMAND started and completely finished in order.  I 
am pretty sure what is
meant is the last meaning in which case it would be good to change
the above from

they will be executed in order

==>

they will be executed to completion in order

to be absolutely clear on this point.  And a similar change would need
to be made to the add_custom_target documentation.

I always assumed the "executed to completion" scenario until today when I
ran into the following "interesting" Linux file modification time
evidence to the contrary (for 3.6.2 if that makes any difference).
For this example, I created in a given add_custom_command (for the
ephcom software) the following sequential COMMANDs

COMMAND $
${binary_ephemeris_full_path} EPHEMERIS_header_ascii
EPHEMERIS_data_ascii >
${CMAKE_BINARY_DIR}/${binary_results_dir}/${dir}/identity_eph2asc.out
2>&1

COMMAND $ EPHEMERIS_header_ascii
EPHEMERIS_data_ascii RECREATED_BINARY_EPHEMERIS >
${CMAKE_BINARY_DIR}/${binary_results_dir}/${dir}/identity_asc2eph.out
2>&1

and yet for the files generated with "make -j4" the modification times
are (from the Linux "ls -lth --full-time" command)

-rw-r--r-- 1 software software0 2017-12-04 19:34:56.765613972 -0800 
identity_eph2asc.out
-rw-r--r-- 1 software software 7.6K 2017-12-04 19:34:56.741614353 -0800 
identity_asc2eph.out
-rw-r--r-- 1 software software 136M 2017-12-04 19:34:56.721614671 -0800 
EPHEMERIS_data_ascii
-rw-r--r-- 1 software software  41M 2017-12-04 19:34:56.697615052 -0800 
RECREATED_BINARY_EPHEMERIS
-rw-r--r-- 1 software software 7.4K 2017-12-04 19:34:47.097767483 -0800 
EPHEMERIS_header_ascii
[...]
-rw-r--r-- 1 software software  41M 2017-12-04 19:25:57.974135445 -0800 JPLEPH

where JPLEPH is the same as ${binary_ephemeris_full_path} above, and
the first 5 files are output from the above two COMMANDs.

The puzzling thing is these modification times naively imply the
second command finished slightly before (!) the first command which
should lead to completely bogus results since the second command
depends on the EPHEMERIS_header_ascii and EPHEMERIS_data_ascii files
generated by the first command.  However, it turns out the results are
perfect as expected, i.e., RECREATED_BINARY_EPHEMERIS is exactly
identical to the starting ${binary_ephemeris_full_path} = JPLEPH in
the same directory verifying the eph2asc and asc2eph commands are
working perfectly for this particular set of ephemeris data.

Because of these perfect results I believe what is going on for this
interesting case is that these modification times are simply showing
Linux kernel optimization at work rather than the actual order of
command execution.  According to this hypothesis, the first command
completely finishes before the second command starts. But at that time
each of the EPHEMERIS_header_ascii, EPHEMERIS_data_ascii, and
identity_eph2asc.out files generated by the first command are handed
off to the Linux kernel for disposition.

And then the optimization fun begins. It makes sense that the kernel
would keep at least the first two core resident until the second
command finishes with them. And eventually all 5 file output results
are flushed to disk (with modification times written at flush time)
when both eph2asc and asc2eph are done with them. This hypothesis does
not explain why identity_eph2asc.out is not immediately flushed by the
Linux kernel when that first task is done, but my guess is the kernel
assigns the lowest priority to flushing small (i.e., zero-length in
this case) files which is why this file is the last to be flushed to
disk.  Also, I just checked and asc2eph opens EPHEMERIS_header_ascii,
reads it, and closes it right at the start of its execution and then
opens EPHEMERIS_data_ascii, and reads it through the rest of a much
longer execution time which explains why the Linux kernel took
advantage of that chance to flush EPHEMERIS_header_ascii so much
earlier than EPHEMERIS_data_ascii.

I would love to get some confirmation that I can absolutely rely on
COMMANDs being executed sequentially with each finishing (and handing
off their generated files to the kernel at that time for disposition)
before the next one is allowed to start.  And I hope I have convinced
the CMake developers that the above slight change in documentation
would be worthwhile to clarify this point.  I would also appreciate