[LLVMdev] Is there room for another build system?

Óscar Fuentes
2008-07-30T16:41:59Z

[Repost: The mailing list was down yesterday. Sorry if this is a
duplicate]

I'm evaluating CMake (1) primarily as an alternative build system for
Visual Studio users, although it can easily be a replacement for
`configure' and hand-made makefiles too, providing a single build system
for all platforms. CMake is a tool that takes a project description and
configures, generates makefiles, project files for IDEs, etc as
requested.

There are three MS C++ compilers capable of compiling LLVM: Visual
Studio 2003, 2005, 2008 and their respective "free tools"
edition. However, the project files distributed with LLVM are for
2005. This means that people using 2003 is left in the cold and people
who only have 2008 must convert the project files and, most important,
can't contribute to the maintenance of the VC++ build.

CMake can generate Visual Studio project files (for all three versions)
and NMake makefiles. This solves the schism among Visual Studio users.

Furthermore, CMake can replace `configure' and generate gmake makefiles,
project files for XCode, etc.

In just an afternoon I hacked CMake specifications for the LLVM
libraries and successfully built the fibonacci example. Most of the time
consisted on just waiting for the build to complete on each
experimentation cycle, so I stimate that was less that 2 hours of real
activity. This without previous knowledge of CMake (nor of the VC++
build). So my impression is quite favorable.

CMake just requires one plain text file named CMakeLists.txt on every
source directory, and the only maintenance is to keep up to date the
list of source files of the directory. So, the work it causes is no more
than the current VC++ build. Anyone, even those who doesn't have the
Visual Studio IDE, can do it. It's pretty trivial.

Now, my questions:

 1. General LLVM users: Are you so happy with `configure' and hand-made
 makefiles that you wont consider an alternative? If you are interested,
 I can steer my work to cover all platforms.

 2. VC++ users: Are you interested on a tool that generates project
 files or makefiles for your IDE or your free VC++ compiler, and with a
 simpler maintenance?

 3. LLVM administrators: Do you object to having a CMakeLists.txt file
 on every source directory?

Obviously, if the answer to 3 is `yes', previous questions are
irrelevant :-)

(1): http://www.cmake.org

--
Oscar