[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[csmith-project/creduce] db867c: Initial work toward fixing CMake-based build.
Branch: refs/heads/master
Home: https://github.com/csmith-project/creduce
Commit: db867c0759b48616904a606398fcad65f1199437
https://github.com/csmith-project/creduce/commit/db867c0759b48616904a606398fcad65f1199437
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-22 (Sun, 22 May 2016)
Changed paths:
M CMakeLists.txt
M clang_delta/CMakeLists.txt
M clex/CMakeLists.txt
M creduce/CMakeLists.txt
Log Message:
-----------
Initial work toward fixing CMake-based build.
Commit: 81202921c958ca7134bcd65f1debeff5a9bf3515
https://github.com/csmith-project/creduce/commit/81202921c958ca7134bcd65f1debeff5a9bf3515
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-22 (Sun, 22 May 2016)
Changed paths:
M CMakeLists.txt
A delta/CMakeLists.txt
A unifdef/CMakeLists.txt
Log Message:
-----------
Add "delta" and "unifdef" to CMake-based build.
Commit: 19faa44b5e2fa08d75a8cf0793dba0a21616c147
https://github.com/csmith-project/creduce/commit/19faa44b5e2fa08d75a8cf0793dba0a21616c147
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-22 (Sun, 22 May 2016)
Changed paths:
M clex/CMakeLists.txt
M creduce/CMakeLists.txt
M delta/CMakeLists.txt
M unifdef/CMakeLists.txt
Log Message:
-----------
Make various cleanups in CMakeList.txt files.
Commit: 2f5849128e55cd75990125c9f5c8ec6008c32479
https://github.com/csmith-project/creduce/commit/2f5849128e55cd75990125c9f5c8ec6008c32479
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-22 (Sun, 22 May 2016)
Changed paths:
M CMakeLists.txt
M clang_delta/CMakeLists.txt
M clex/CMakeLists.txt
M creduce/CMakeLists.txt
Log Message:
-----------
CMakeLists.txt files are not executable.
Commit: 866bc4af5a5f2a08781ed846db77803e9f6bd983
https://github.com/csmith-project/creduce/commit/866bc4af5a5f2a08781ed846db77803e9f6bd983
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-23 (Mon, 23 May 2016)
Changed paths:
M creduce/CMakeLists.txt
Log Message:
-----------
Make more CMakelists.txt cleanups.
Check the version of Perl, as we do in `configure.ac`.
For INDENT, look for a program called `gindent`, too.
When an external program is not found, set the corresponding variable to
"no", to emulate the behavior of the `configure.ac` build path.
Commit: 91dc4455a0e99a31d9c4f681afadbec023f52c60
https://github.com/csmith-project/creduce/commit/91dc4455a0e99a31d9c4f681afadbec023f52c60
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-05-23 (Mon, 23 May 2016)
Changed paths:
M creduce/CMakeLists.txt
Log Message:
-----------
Check for required and optional Perl modules.
Commit: aeaaf8170cb047840552160ef4760a7e40c998c8
https://github.com/csmith-project/creduce/commit/aeaaf8170cb047840552160ef4760a7e40c998c8
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-02 (Thu, 02 Jun 2016)
Changed paths:
M clang_delta/CMakeLists.txt
Log Message:
-----------
Put all `clang_delta` source files in one list.
Commit: 6ddab02c659cb3c79489067f0f434e8056f40180
https://github.com/csmith-project/creduce/commit/6ddab02c659cb3c79489067f0f434e8056f40180
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-02 (Thu, 02 Jun 2016)
Changed paths:
M creduce/CMakeLists.txt
Log Message:
-----------
At build time, copy Perl modules into build tree.
Commit: 282a1d13e9a5f8e72ac8a7dca4e7918135aca88e
https://github.com/csmith-project/creduce/commit/282a1d13e9a5f8e72ac8a7dca4e7918135aca88e
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-02 (Thu, 02 Jun 2016)
Changed paths:
M creduce/CMakeLists.txt
Log Message:
-----------
Clean up install rules.
Don't be confused by `*.pm` files that might be lingering in the build
tree. Install the generated configuration file from the build tree, and
all other modules from the source tree.
Commit: 5c0332ee69a7ef87d89dc73891fe2f28689d52e4
https://github.com/csmith-project/creduce/commit/5c0332ee69a7ef87d89dc73891fe2f28689d52e4
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-02 (Thu, 02 Jun 2016)
Changed paths:
M creduce/CMakeLists.txt
Log Message:
-----------
Avoid a warning from CMake 3.1+.
Commit: 384aa74ae8c92331dbbfa142bde40c306ae5e949
https://github.com/csmith-project/creduce/commit/384aa74ae8c92331dbbfa142bde40c306ae5e949
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-02 (Thu, 02 Jun 2016)
Changed paths:
M CMakeLists.txt
Log Message:
-----------
Add "-fvisibility-inlines-hidden" to `CMAKE_CXX_FLAGS`.
Use the same logic that LLVM uses for including this flag in the C++
command-line options.
Without this, I get a bunch of link-time warnings when I build C-Reduce
against the precompiled OS X binary for LLVM 3.8.0.
Commit: a570f2004472a17670cb5817ea7c00e212dec27d
https://github.com/csmith-project/creduce/commit/a570f2004472a17670cb5817ea7c00e212dec27d
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-10 (Fri, 10 Jun 2016)
Changed paths:
A cmake/GetGitRevisionDescription.cmake
A cmake/GetGitRevisionDescription.cmake.in
Log Message:
-----------
Add CMake module for extracting git info.
These files are copied from this project on GitHub:
https://github.com/rpavlik/cmake-modules
They are licensed under the Boost Software License, version 1.0, as
described in the files themselves.
The use of these files is described in the answer to a question at the
StackOverflow website:
http://stackoverflow.com/questions/1435953/how-can-i-pass-git-sha1-to-compiler-as-definition-using-cmake
Commit: b50bc99c3a48635a1557c9db401c2df0590feb14
https://github.com/csmith-project/creduce/commit/b50bc99c3a48635a1557c9db401c2df0590feb14
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-10 (Fri, 10 Jun 2016)
Changed paths:
M .gitattributes
M CMakeLists.txt
M creduce/CMakeLists.txt
Log Message:
-----------
Use the git-version CMake module.
Use the newly added CMake module that determines the git hash of the
source repository. Additionally, for the CMake-based build system,
(1) reproduce the logic from file `git-hash.sh' for determining the
appropriate git hash to build into C-Reduce; and (2) actually pass the
git hash to the C/C++ compilers.
This includes the ability to "burn the hash" into a release tarball.
Commit: 81a6002e034dba5b63ef65061a820d01b30066ed
https://github.com/csmith-project/creduce/commit/81a6002e034dba5b63ef65061a820d01b30066ed
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-10 (Fri, 10 Jun 2016)
Changed paths:
M CMakeLists.txt
M clang_delta/CMakeLists.txt
M clex/CMakeLists.txt
M delta/CMakeLists.txt
M unifdef/CMakeLists.txt
Log Message:
-----------
Clean up uses of `add_definitions`.
Commit: ca2b610cc909203f98b7ea7be2aa32570fd3e46e
https://github.com/csmith-project/creduce/commit/ca2b610cc909203f98b7ea7be2aa32570fd3e46e
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M Makefile.am
M Makefile.in
Log Message:
-----------
Include `cmake` directory in distributions.
Commit: a454a3f6149da3bcd56764947c4abf01fb7a07eb
https://github.com/csmith-project/creduce/commit/a454a3f6149da3bcd56764947c4abf01fb7a07eb
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M CMakeLists.txt
M clang_delta/CMakeLists.txt
Log Message:
-----------
Handle `ENABLE_TRANS_ASSERT` as we do in `configure`.
The preprocessor symbol `ENABLE_TRANS_ASSERT` is now unset by default,
just as with the `configure`-based build system.
Commit: c908206760b7db225bbf6c83ad6b4a861f931b1a
https://github.com/csmith-project/creduce/commit/c908206760b7db225bbf6c83ad6b4a861f931b1a
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-11 (Sat, 11 Jun 2016)
Changed paths:
M INSTALL
Log Message:
-----------
Add documentation for CMake-based build path.
Commit: a12b363c3d2bfba3dbca221308f7511bc18b7972
https://github.com/csmith-project/creduce/commit/a12b363c3d2bfba3dbca221308f7511bc18b7972
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-21 (Tue, 21 Jun 2016)
Changed paths:
M CMakeLists.txt
M clang_delta/CMakeLists.txt
M clex/CMakeLists.txt
M creduce/CMakeLists.txt
M delta/CMakeLists.txt
Log Message:
-----------
Move package tests to topmost `CMakeLists.txt`.
Move the tests for LLVM, Perl, and flex to the topmost `CMakeLists.txt`
file. Previously, some of these checks were duplicated among the
`CMakeLists.txt` files of the various subdirectories.
Commit: 3064d2c64b791251e4e6adf36054b73451a02c05
https://github.com/csmith-project/creduce/commit/3064d2c64b791251e4e6adf36054b73451a02c05
Author: Eric Eide <eeide@cs.utah.edu>
Date: 2016-06-21 (Tue, 21 Jun 2016)
Changed paths:
M .gitattributes
M CMakeLists.txt
M INSTALL
M Makefile.am
M Makefile.in
M clang_delta/CMakeLists.txt
M clex/CMakeLists.txt
A cmake/GetGitRevisionDescription.cmake
A cmake/GetGitRevisionDescription.cmake.in
M creduce/CMakeLists.txt
A delta/CMakeLists.txt
A unifdef/CMakeLists.txt
Log Message:
-----------
Merge updates to CMake-based build system.
The CMake-based build system is now more complete, and it works a lot
more like the Automake-based build system. I have tested these updates
to the build system on (1) Ubuntu 14.04 with CMake 2.8 and on (2) OS X
10.10.5 with CMake 3.5.2.
See the `INSTALL` file for basic instructions about using the
CMake-based build system.
Let me encourage you to compile C-Reduce in a build tree that is
separate from your source tree. It works.
There are some aspects of the CMake-based build system that I would like
to fix in the future. But as is, I think the current system works
pretty well and it is ready to be tested by others.
A notable nit: Currently, a git commit in your source tree will trigger
a rebuild of every C/C++ file in your build tree, because (1) we
communicate the git hash to the compiler as a command-line option
and (2) CMake detects this as a change to the configuration, which is
technically correct.
Compare: https://github.com/csmith-project/creduce/compare/5baa9b4596a4...3064d2c64b79