From 7bd2dbc260194a23cf96031c3395bbe2358de852 Mon Sep 17 00:00:00 2001 From: Will Schroeder Date: Wed, 6 Jun 2001 10:13:49 -0400 Subject: ENH:Some enhancements to the examples --- Web/Art/CMakeGUI.jpg | Bin 0 -> 46347 bytes Web/HTML/About.html | 10 ++++++--- Web/HTML/Documentation.html | 6 ++--- Web/HTML/Examples.html | 51 ++++++++++++++++++++++++++++++++++++++++++- Web/HTML/SideBar.html | 2 +- Web/HTML/Sponsors.html | 6 +++-- Web/HTML/Table.html | 2 +- Web/HTML/cmakeExample.tar.gz | Bin 0 -> 1139 bytes 8 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 Web/Art/CMakeGUI.jpg create mode 100644 Web/HTML/cmakeExample.tar.gz diff --git a/Web/Art/CMakeGUI.jpg b/Web/Art/CMakeGUI.jpg new file mode 100644 index 0000000..0ac2f48 Binary files /dev/null and b/Web/Art/CMakeGUI.jpg differ diff --git a/Web/HTML/About.html b/Web/HTML/About.html index aac273a..47d51cd 100644 --- a/Web/HTML/About.html +++ b/Web/HTML/About.html @@ -33,6 +33,10 @@ vlink="#000000" alink="#000000"> the cache, which may be changed by the user prior to the generation of the native build files. (The following figure is the CMake cache GUI in the Windows MSVC environment.) +
+ +

CMake is designed to support complex directory hierarchies and @@ -100,7 +104,7 @@ vlink="#000000" alink="#000000"> adopted CMake as their build environment, contributing many essential features. Brad King added several features in order to support the CABLE automated wrapping environment and - gcc-XML, and + GCC-XML, and GE Corporate R&D required support of their testing infrastructure (the quality dashboard). Other features were added by Ken Martin to support the transition of VTK's @@ -118,8 +122,8 @@ vlink="#000000" alink="#000000"> list. There is some existing documentation, but until later in 2001 the documentation should be treated with caution. Please go to the documentation for more - information. - + information. Also, see the example + found here. diff --git a/Web/HTML/Documentation.html b/Web/HTML/Documentation.html index ad726fb..74b0dbb 100644 --- a/Web/HTML/Documentation.html +++ b/Web/HTML/Documentation.html @@ -27,8 +27,8 @@ vlink="#000000" alink="#000000"> will use CMake in preference to the current build environment. VTK is a very large system for 3D graphics and visualization consisting of approximately 700 classes and hundreds of thousands of lines of executable - code. It fully exploits CMake's capabilities because of the automated - "wrapping" process that automatically generates interface code to Tcl, + code. It fully exploits CMake's capabilities due to the automated + "wrapping" process that generates interface code to Tcl, Python, and Java from the C++ header files.

cvs -d :pserver:anonymous@www.visualizationtoolkit.org:/vtk/cvsroot login
@@ -39,7 +39,7 @@ vlink="#000000" alink="#000000">

To obtain access to the ITK CVS repository:

- Insight (ITK) is the first project to adopt ITK. It is heavily templated + Insight (ITK) is the first project to adopt CMake. It is heavily templated C++ code using the generic programming style. It has an especially nice testing environment driven by CMake.

diff --git a/Web/HTML/Examples.html b/Web/HTML/Examples.html index 9ba12dc..2c2a897 100644 --- a/Web/HTML/Examples.html +++ b/Web/HTML/Examples.html @@ -15,8 +15,57 @@ vlink="#000000" alink="#000000">

The following example demonstrates some key ideas - of CMake. + of CMake. (You may wish to download this + example code and try it + out for yourself.) +

+ There are three directories involved. The top level directory has two + subdirectories called ./Demo and ./Hello. In the directory ./Hello, a + library is built. In the directory ./Demo, an executable is built by + linking to the library. A total of three CMakeList.txt files are + created: one for each directory. +

+ The first, top-level directory contains the following CMakeLists.txt file. +

+# The name of our project is "HELLO".  CMakeLists files in this project can
+# refer to the root source directory of the project as ${HELLO_SOURCE_DIR} and
+# to the root binary directory of the project as ${HELLO_BINARY_DIR}.
+PROJECT(HELLO)
 
+# Recurse into the "Hello" and "Demo" subdirectories.  This does not actually
+# cause another cmake executable to run.  The same process will walk through
+# the project's entire directory structure.
+SUBDIRS(Hello Demo)
+    
+ Then for each subdirectory listed in the SUBDIRS command, CMakeLists.txt + files are created. In the ./Hello directory, the following CMakeLists.txt + file is created: +
+# Create a library called "Hello" which includes the source file "hello.cxx".
+# The extension is already found.  Any number of sources could be listed here.
+ADD_LIBRARY(Hello hello)
+    
+ Finally, in the ./Demo directory, the third and final CMakeLists.txt file + is created: +
+# Make sure the compiler can find include files from our Hello library.
+INCLUDE_DIRECTORIES(${HELLO_SOURCE_DIR}/Hello)
+
+# Make sure the linker can find the Hello library once it is built.
+LINK_DIRECTORIES(${HELLO_BINARY_DIR}/Hello)
+
+# Add executable called "helloDemo" that is built from the source files
+# "demo.cxx" and "demo_b.cxx".  The extensions are automatically found.
+ADD_EXECUTABLE(helloDemo demo demo_b)
+
+# Link the executable to the Hello library.
+TARGET_LINK_LIBRARIES(helloDemo Hello)
+    
+ CMake when executed in the top-level directory will process the + CMakeLists.txt file and then descend into the listed subdirectories. + Variables, include paths, library paths, etc. are inherited. Depending + on the system, makefiles (Unix) or workspaces/projects (MSVC) will be + built. These can then be used in the usual way to build the code.
diff --git a/Web/HTML/SideBar.html b/Web/HTML/SideBar.html index af6c6b5..0cb05d4 100644 --- a/Web/HTML/SideBar.html +++ b/Web/HTML/SideBar.html @@ -3,7 +3,7 @@  Home

 About

 Sponsors

-  Examples

+  Example

 Download

 Documentation

 FAQ

diff --git a/Web/HTML/Sponsors.html b/Web/HTML/Sponsors.html index 8ebcb5d..3d2ba9e 100644 --- a/Web/HTML/Sponsors.html +++ b/Web/HTML/Sponsors.html @@ -29,8 +29,10 @@ this work include:


National Library of Medicine (NLM) - Dr. Terry Yoo at NLM/NIH is sponsoring the bulk of this work as part of the Insight segmentation - and registration toolkit (ITK). CMake was originally created to - support the multi-platform support necessary for ITK. + and registration toolkit + (ITK). + CMake was originally created for + the multi-platform support necessary for ITK. diff --git a/Web/HTML/Table.html b/Web/HTML/Table.html index 51c0c15..934deb7 100644 --- a/Web/HTML/Table.html +++ b/Web/HTML/Table.html @@ -1,4 +1,4 @@ - +