| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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...
|