No Description

Bill Hoffman f76a992ff9 ENH: add ability to run from different directories 25 years ago
Source f76a992ff9 ENH: add ability to run from different directories 25 years ago
.gitattributes d6bdba1096 *** empty log message *** 25 years ago
CMakeMaster.make.in 74c1345333 ENH: change ME to LIBRARY and added PROJECT, also remove ITK stuff and replaced with CMake 25 years ago
CMakeRules.make.in 74c1345333 ENH: change ME to LIBRARY and added PROJECT, also remove ITK stuff and replaced with CMake 25 years ago
CMakeSimpleRules.make.in 3ded009f08 BUG: fix for out of source build 25 years ago
CMakeTargets.make.in aa3ca2b432 ENH: CMake and configure now use SUBDIRS in CMakeLists.txt to find all the directories of the system. 25 years ago
CMakeVariables.make.in 6737f7277f ENH: Moved @JAVA@ to @JAVACOMMAND@ 25 years ago
MakefileTemplate.in aa3ca2b432 ENH: CMake and configure now use SUBDIRS in CMakeLists.txt to find all the directories of the system. 25 years ago
README 1ae64b11fb ENH:Reworked CMake to clearer indicate what the variables do 25 years ago
dummy.in d6bdba1096 *** empty log message *** 25 years ago

README


CMakeLists.txt -> File in each directory that contains classes, exe, etc
CMakeLists.txt contains the following:
# build targets
WIN32_SOURCE_FILES =
UNIX_SOURCE_FILES =
ABSTRACT_CLASSES =
SUBDIRS =
EXECUTABLES =
# make flags
# make flags can use these varibles:
# ${CMAKE_BINARY_DIR} The root of the build tree where the binaries are
# ${CMAKE_SOURCE_ROOT} The root of the source tree where configure is
INCLUDE_DIRECTORIES =
LINK_DIRECTORIES =
LINK_LIBRARIES = # use the same name as ME =
WIN32_LIBRARIES =
UNIX_LIBRARIES =

# name of the library to build
ME =

# add make commands
BEGIN MAKE VERBATIM
... # copy stuff into CMakeTargets.make directly
LOCAL_BUILD_TARGETS = // These are done first before anything else
END MAKE VERBATIM
AUX_SOURCE_DIR =

Windows / Visual Studio 6.0 programs
CMakeSetup.exe -> window MFC based GUI for configure on windows
CMakeSetupCMD.exe -> windows command line version of CMakeConfigure
To Build on Windows:
load CMake/Source/CMakeSetup.dsw
Build it
Run it
Specify paths

Load ITK.dsw
Build Common, Numerics, then any of the many executables, or do a Batch build
with debug only.


Unix scripts and programs:
configure -> run on unix to configure for build
CMakeBuildTargets -> Unix program to read CMakeLists.txt and generate CMakeTargets.make
makefile fragments:
CMakeMaster.make -> main file to be included by makefiles
CMakeVariables.make -> all make varibles are set in this file
CMakeRules.make -> All build rules are here (except Simple Rules)
CMakeSimpleRules.make -> simple build rules for .o to .cxx, this is separate to be able
to build CMakeBuildTargets itself.
CMakeLocal.make -> Place for hand configuration
CMakeTargets.make -> generated rules for make style build in each directory
MakefileTemplate.make -> master makefile template used by configure to generate Makefiles


Note on adding targets inside "BEGIN/END MAKE VERBATIM" lines:

By default, after "includ"ing a makefile, make will attempt to bring
that included file up to date. So, when you first run configure, your
makefiles will _not_ contain the target you have asked for inside the
VERBATIM tags. However, it will be added by CMake when make attempts
to bring the included make files up to date. NOTE: this will make
your head hurt if you think about it too long. Just accept that it
works to ask for a build target that does not yet exist.

Unix install:
In place:
./configure
make

Other directory:
mkdir Insight-build
cd Insight-build
../Insight/configure
make


TODO:

FEATURES:
Add include and directories to the build on windows.
For unix just add them to the CMakeLocal.make.in
Add a --with idea, sets a #define in the config.h file

CLEANUP:
Change ME to LIBRARY, and add PROJECT=
Remove the rest of the ITK_* stuff
move the libs used from the top into the testing...