[cmake-developers] User vs CMake include mismatch handling

Alexander Neundorf neundorf at kde.org
Wed Oct 6 16:23:23 EDT 2010


On Tuesday 05 October 2010, David Cole wrote:
> On Tue, Oct 5, 2010 at 4:48 PM, Alexander Neundorf <neundorf at kde.org> wrote:
> > On Tuesday 05 October 2010, James Bigler wrote:
> > > On Tue, Oct 5, 2010 at 2:08 PM, Alexander Neundorf <neundorf at kde.org>
> >
> > wrote:
> > ...
> >
> > > > The current behaviour is really like running an executable with a
> >
> > shared
> >
> > > > library LD_PRELOADED, and hoping that the LD_PRELOADED libs will
> > > > always be work as the correct one would.
> > > >
> > > > Alex
> > >
> > > This patch breaks backward compatibility, because it changes the
> > > include order.
> >
> > I am aware that it can potentially break builds.
> > But, it only breaks compatibility where cmake *hopes* that nobody else
> > breaks
> > it instead of making sure that it gets what it expects.
> > Also I assume that there are very rare, maybe no projects which rely on
> > this
> > very special behaviour.
> > At least for kdelibs it works.
> > Will check the other KDE modules and what we have at work tomorrow.
> >
> > > Just like hoping that no one would want to modify the existing set of
> > > macros in this way is like assuming that no one will make a copy of a
> >
> > built
> >
> > You still can override them and create your own copies of cmake-supplied
> > modules and use them, no change there. It only changes something for a
> > module
> > shipped with cmake which tries to include another module shipped with
> > cmake.
> > In this case the patch ensures that the including module also gets the
> > module
> > included it expects.
> >
> > IOW, it makes cmake 2.8.3 NOT break the build of applications using
> > installed
> > KDE 4.5.[01] kdelibs.
> >
> > > in macro which will not work in a future version of cmake where the
> >
> > macro's
> >
> > > api changes.
> > >
> > > Why can't you create a new version of the FSA macro in question?  This
> > > is what is typically done to maintain backward compatibility with
> > > binary libraries.
> >
> > Alex
> > _______________________________________________
> > cmake-developers mailing list
> > cmake-developers at cmake.org
> > http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
>
> Another solution to this whole fiasco to consider... rather than what we
> have now, or one of your two proposals (the CMAKE_CURRENT_LIST_DIR or the
> backwards-compatibility breakage) ... is as follows:
>
> Revert the FindPackageHandleStandardArgs.cmake to how it used to be. Add a
> new module with the new functionality (and a new name, perhaps
> FindPackageHandleStandardArguments, just to make FPHSA even longer... :-)
> ). Then include the new module, instead of the old one in built-in files in
> CMake.
>
> This is still clean from both CMake and KDE points of view, does not break
> backwards compatibility, and solves the problem. At least in this instance.
>
> Now, it would still be possible to introduce this problem again, in another
> case, but consider the whole cause of this in the first place: we added new
> stuff to an existing function, and then started using it, not considering
> that it itself was the first break in backwards compatibility. 

As far as I understand, the module itself doesn't break compatibility.
Old syntax:
FPHSA( Foo  DEFAULT_MSG FOO_LIBRARY FOO_DIR)
New Syntax:
FPHSA( Foo REQUIRED_VARS FOO_LIBRARY_FOO_DIR
           VERSION_VAR FOO_VERSION)

The new syntax works, and the old syntax also still works the same way it 
always did. So from that POV there is no compatibility breakage I think.

The breakage occurs because some FindFoo.cmake modules coming with cmake 
are "linked" against FPHSA.cmake, but at runtime, the "loader" finds 
FPHSA.cmake via a user-set "LD_LIBRARY_PATH", since FindFoo.cmake doesn't 
have an "RPATH", which would have avoided the problem.

My patch basically implements an "RPATH" for the all files in CMAKE_ROOT, so 
they always get what we (the CMake developers) expect them to get.


Attached is a file "log". I created this using the attached script and edited 
it a bit.

It shows (at the end) that inside CMAKE_ROOT 128 files or include()d or 
find_package()d without full path.
One could argue both ways:
these are 128 chances to break existing builds with the "RPATH"
OR
these are 128 chances that cmake can break existing builds in the future when 
enhancing its own cmake files if we don't add "RPATH"

I split the 128 files into groups:
* 12 files in Modules/Compiler/
* 42 files in Modules/Platform/
* 34 Find-Modules
* 40 other files

I would feel better if I could be sure that in these 128 cases always the 
expected file is loaded, and not maybe a different one.


The situation is this: projects would be still perfectly able to override 
modules shipped with cmake. 

Example: FindZLIB.cmake
This file is used by FindPNG.cmake and by FindQt4.cmake

So a project Bar would break if it uses FindPNG.cmake but relies on a custom 
FindZLIB.cmake.
The right way to handle this for the project is to include the full 
dependencies, i.e. if they rely on a FindPNG.cmake which works only properly 
with their custom FindZLIB.cmake, they also need to ship their own copy of 
FindPNG.cmake. This will avoid "diving" into CMAKE_ROOT and by that their 
custom FindPNG.cmake will get their custom FindZLIB.cmake

Advantage for CMake: Let's assume we enhance FindZLIB.cmake in cmake 2.8.5 to 
make use of imported targets, and let's assume that we make use of this new 
feature in FindPNG.cmake also in the same version. This is a compatible 
change, assuming we followed all rules, i.e. the old variables stay working 
and we basically only added things.

With the current behaviour, the build of the project Bar would break because 
the cmake-supplied FindPNG.cmake would get the project-supplied 
FindZLIB.cmake loaded, which doesn't have the imported targets yet, so stuff 
breaks.

With the new behaviour, if the project just has a custom FindZLIB.cmake, the 
enhanced cmake-supplied FindPNG.cmake will get the new enhanced 
cmake-supplied FindZLIB.cmake, so it works.
If the project calls find_package(ZLIB), they get their own custom version.

If the project ships both a FindPNG.cmake and a FindZLIB.cmake, it doesn't 
matter to them what happens to those files in cmake.


I think we should really take time to come to a really good and robust 
solution for this issue.

Alex
-------------- next part --------------
file: AddFileDependencies.cmake
file: BundleUtilities.cmake
includes "${BundleUtilities_cmake_dir}/GetPrerequisites.cmake"
file: CMake.cmake
file: CMakeASM-ATTInformation.cmake
includes CMakeASMInformation
file: CMakeASMInformation.cmake
includes Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}
includes Platform/${CMAKE_BASE_NAME}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
file: CMakeASM_MASMInformation.cmake
includes CMakeASMInformation
file: CMakeBackwardCompatibilityC.cmake
includes CMakeVS7BackwardCompatibility
includes CMakeVS6BackwardCompatibility
includes CheckTypeSize
includes CheckIncludeFile
includes CheckIncludeFiles
includes TestBigEndian
includes FindX11
includes FindThreads
file: CMakeBackwardCompatibilityCXX.cmake
includes TestCXXAcceptsFlag
includes TestForANSIStreamHeaders
includes CheckIncludeFileCXX
includes TestForSTDNamespace
includes TestForANSIForScope
includes TestForSSTREAM
file: CMakeBorlandFindMake.cmake
file: CMakeCInformation.cmake
includes Compiler/${CMAKE_C_COMPILER_ID}-C
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
includes Platform/${CMAKE_SYSTEM_NAME}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE_C}
includes CMakeCommonLanguageInclude
file: CMakeCXXInformation.cmake
includes Compiler/${CMAKE_CXX_COMPILER_ID}-CXX
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR}
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
includes Platform/${CMAKE_SYSTEM_NAME}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}
includes CMakeCommonLanguageInclude
file: CMakeCommonLanguageInclude.cmake
file: CMakeDependentOption.cmake
file: CMakeDetermineASM-ATTCompiler.cmake
includes CMakeDetermineASMCompiler
file: CMakeDetermineASMCompiler.cmake
includes CMakeFindBinUtils
file: CMakeDetermineASM_MASMCompiler.cmake
includes CMakeDetermineASMCompiler
file: CMakeDetermineCCompiler.cmake
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake
includes CMakeFindBinUtils
file: CMakeDetermineCXXCompiler.cmake
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake
includes CMakeFindBinUtils
file: CMakeDetermineCompilerABI.cmake
includes ${CMAKE_ROOT}/Modules/CMakeParseImplicitLinkInfo.cmake
file: CMakeDetermineCompilerId.cmake
file: CMakeDetermineFortranCompiler.cmake
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake
includes CMakeFindBinUtils
file: CMakeDetermineJavaCompiler.cmake
file: CMakeDetermineRCCompiler.cmake
file: CMakeDetermineSystem.cmake
includes "${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}"
includes "${CMAKE_TOOLCHAIN_FILE}"
includes \"${CMAKE_TOOLCHAIN_FILE}\"
file: CMakeDetermineVSServicePack.cmake
file: CMakeExportBuildSettings.cmake
file: CMakeFindBinUtils.cmake
file: CMakeFindCodeBlocks.cmake
file: CMakeFindEclipseCDT4.cmake
file: CMakeFindFrameworks.cmake
file: CMakeFindKDevelop3.cmake
file: CMakeFindWMake.cmake
file: CMakeFindXCode.cmake
file: CMakeForceCompiler.cmake
file: CMakeFortranInformation.cmake
includes Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
includes Platform/${CMAKE_SYSTEM_NAME}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran}
includes CMakeCommonLanguageInclude
file: CMakeGenericSystem.cmake
file: CMakeImportBuildSettings.cmake
file: CMakeJOMFindMake.cmake
file: CMakeJavaInformation.cmake
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE}
includes ${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}
file: CMakeMSYSFindMake.cmake
file: CMakeMinGWFindMake.cmake
file: CMakeNMakeFindMake.cmake
file: CMakeParseImplicitLinkInfo.cmake
file: CMakePrintSystemInformation.cmake
file: CMakeRCInformation.cmake
includes Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
file: CMakeSystemSpecificInformation.cmake
includes CMakeGenericSystem
includes ${CMAKE_SYSTEM_INFO_FILE}
includes "CMakeFind${_CMAKE_EXTRA_GENERATOR_NO_SPACES}"
file: CMakeTestASM-ATTCompiler.cmake
includes CMakeTestASMCompiler
file: CMakeTestASMCompiler.cmake
file: CMakeTestASM_MASMCompiler.cmake
includes CMakeTestASMCompiler
file: CMakeTestCCompiler.cmake
includes CMakeTestCompilerCommon
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake
includes ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCCompiler.cmake
file: CMakeTestCXXCompiler.cmake
includes CMakeTestCompilerCommon
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake
includes ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake
file: CMakeTestCompilerCommon.cmake
file: CMakeTestFortranCompiler.cmake
includes CMakeTestCompilerCommon
includes ${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake
includes ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeFortranCompiler.cmake
file: CMakeTestJavaCompiler.cmake
file: CMakeTestRCCompiler.cmake
file: CMakeUnixFindMake.cmake
file: CMakeVS10FindMake.cmake
file: CMakeVS6BackwardCompatibility.cmake
file: CMakeVS6FindMake.cmake
file: CMakeVS71FindMake.cmake
file: CMakeVS7BackwardCompatibility.cmake
file: CMakeVS7FindMake.cmake
file: CMakeVS8FindMake.cmake
file: CMakeVS9FindMake.cmake
file: CMakeVerifyManifest.cmake
file: CPack.cmake
file: CPackDeb.cmake
file: CPackRPM.cmake
file: CPackZIP.cmake
find_packages Cygwin
file: CTest.cmake
includes "${PROJECT_SOURCE_DIR}/CTestConfig.cmake"
includes "${PROJECT_SOURCE_DIR}/DartConfig.cmake"
includes CTestTargets
file: CTestScriptMode.cmake
includes CMakeDetermineSystem
includes CMakeSystemSpecificInformation
file: CTestTargets.cmake
file: CheckCCompilerFlag.cmake
includes CheckCSourceCompiles
file: CheckCSourceCompiles.cmake
file: CheckCSourceRuns.cmake
file: CheckCXXCompilerFlag.cmake
includes CheckCXXSourceCompiles
file: CheckCXXSourceCompiles.cmake
file: CheckCXXSourceRuns.cmake
file: CheckFortranFunctionExists.cmake
file: CheckFunctionExists.cmake
file: CheckIncludeFile.cmake
file: Compiler/Clang-C.cmake
includes Compiler/GNU-C
file: Compiler/Clang-CXX.cmake
includes Compiler/GNU-CXX
file: Compiler/G95-Fortran.cmake
file: Compiler/GNU-C.cmake
includes Compiler/GNU
file: Compiler/GNU-CXX.cmake
includes Compiler/GNU
file: Compiler/GNU-Fortran.cmake
includes Compiler/GNU
file: Compiler/GNU.cmake
file: Compiler/HP-C.cmake
file: Compiler/HP-CXX.cmake
file: Compiler/HP-Fortran.cmake
file: Compiler/Intel-C.cmake
file: Compiler/Intel-CXX.cmake
file: Compiler/Intel-Fortran.cmake
file: Compiler/MIPSpro-C.cmake
file: Compiler/MIPSpro-CXX.cmake
file: Compiler/MIPSpro-Fortran.cmake
file: Compiler/PGI-C.cmake
includes Compiler/PGI
file: Compiler/PGI-CXX.cmake
includes Compiler/PGI
file: Compiler/PGI-Fortran.cmake
includes Compiler/PGI
file: Compiler/PGI.cmake
file: Compiler/PathScale-C.cmake
includes Compiler/PathScale
file: Compiler/PathScale-CXX.cmake
includes Compiler/PathScale
file: Compiler/PathScale-Fortran.cmake
includes Compiler/PathScale
file: Compiler/PathScale.cmake
file: Compiler/SunPro-C.cmake
file: Compiler/SunPro-CXX.cmake
file: Compiler/SunPro-Fortran.cmake
file: Compiler/VisualAge-C.cmake
includes Compiler/XL-C
file: Compiler/VisualAge-CXX.cmake
includes Compiler/XL-CXX
file: Compiler/VisualAge-Fortran.cmake
includes Compiler/XL-Fortran
file: Compiler/XL-C.cmake
file: Compiler/XL-CXX.cmake
file: Compiler/XL-Fortran.cmake
file: CheckIncludeFileCXX.cmake
file: CheckIncludeFiles.cmake
file: CheckLibraryExists.cmake
file: CheckSizeOf.cmake
file: CheckStructHasMember.cmake
includes CheckCSourceCompiles
file: CheckSymbolExists.cmake
file: CheckTypeSize.cmake
includes CheckIncludeFile
includes ${_map_file}
file: CheckVariableExists.cmake
file: Dart.cmake
find_packages Dart
includes CTest
find_packages Tclsh
includes CTestTargets
file: Documentation.cmake
find_packages UnixCommands
find_packages Doxygen
find_packages Gnuplot
find_packages HTMLHelp
find_packages Perl
find_packages Wget
file: ExternalProject.cmake
find_packages CVS
find_packages Subversion
find_packages Git
file: FLTKCompatibility.cmake
includes CheckIncludeFile
file: FeatureSummary.cmake
includes CMakeParseArguments
file: FindALSA.cmake
includes FindPackageHandleStandardArgs
file: FindASPELL.cmake
includes FindPackageHandleStandardArgs
file: FindAVIFile.cmake
includes FindPackageHandleStandardArgs
file: FindBISON.cmake
includes FindPackageHandleStandardArgs
file: FindBLAS.cmake
includes CheckFortranFunctionExists
find_packages Threads
find_packages Threads
file: FindBZip2.cmake
includes FindPackageHandleStandardArgs
includes CheckLibraryExists
file: FindBoost.cmake
file: FindBullet.cmake
includes FindPackageHandleStandardArgs
file: FindCABLE.cmake
file: FindCUDA.cmake
includes ${dependency_file}
includes FindPackageHandleStandardArgs
file: FindCUDA/make2cmake.cmake
file: FindCUDA/parse_cubin.cmake
file: FindCUDA/run_nvcc.cmake
file: FindCURL.cmake
includes FindPackageHandleStandardArgs
file: FindCVS.cmake
includes FindPackageHandleStandardArgs
file: FindCoin3D.cmake
includes FindPackageHandleStandardArgs
file: FindCups.cmake
includes CheckLibraryExists
file: FindCurses.cmake
includes CheckLibraryExists
includes FindPackageHandleStandardArgs
file: FindCxxTest.cmake
find_packages PythonInterp
find_packages Perl
includes FindPackageHandleStandardArgs
file: FindCygwin.cmake
file: FindDCMTK.cmake
includes FindPackageHandleStandardArgs
file: FindDart.cmake
includes FindPackageHandleStandardArgs
file: FindDevIL.cmake
includes FindPackageHandleStandardArgs
file: FindDoxygen.cmake
includes FindPackageHandleStandardArgs
file: FindEXPAT.cmake
includes FindPackageHandleStandardArgs
file: FindFLEX.cmake
includes FindPackageHandleStandardArgs
file: FindFLTK.cmake
find_packages OpenGL
includes FindX11
includes ${FLTK_DIR}/FLTKConfig.cmake
includes FindPackageHandleStandardArgs
file: FindFLTK2.cmake
includes ${CMAKE_ROOT}/Modules/FindX11.cmake
includes ${FLTK2_DIR}/FLTK2Config.cmake
file: FindFreetype.cmake
includes FindPackageHandleStandardArgs
file: FindGCCXML.cmake
file: FindGDAL.cmake
includes FindPackageHandleStandardArgs
file: FindGIF.cmake
includes FindPackageHandleStandardArgs
file: FindGLU.cmake
includes FindOpenGL
file: FindGLUT.cmake
file: FindGTK.cmake
file: FindGTK2.cmake
find_packages Freetype
includes FindPackageHandleStandardArgs
file: FindGTest.cmake
includes FindPackageHandleStandardArgs
file: FindGettext.cmake
file: FindGit.cmake
includes FindPackageHandleStandardArgs
file: FindGnuTLS.cmake
find_packages PkgConfig
includes FindPackageHandleStandardArgs
file: FindGnuplot.cmake
includes FindCygwin
includes FindPackageHandleStandardArgs
file: FindHDF5.cmake
includes SelectLibraryConfigurations
includes FindPackageHandleStandardArgs
file: FindHSPELL.cmake
includes FindPackageHandleStandardArgs
file: FindHTMLHelp.cmake
file: FindITK.cmake
includes ${ITK_DIR}/ITKConfig.cmake
file: FindImageMagick.cmake
includes FindPackageHandleStandardArgs
file: FindJNI.cmake
includes FindPackageHandleStandardArgs
file: FindJPEG.cmake
includes FindPackageHandleStandardArgs
file: FindJasper.cmake
find_packages JPEG
includes FindPackageHandleStandardArgs
file: FindJava.cmake
includes FindPackageHandleStandardArgs
file: FindKDE3.cmake
find_packages Qt3
find_packages X11
includes KDE3Macros
file: FindKDE4.cmake
find_packages KDE4Internal
file: FindLAPACK.cmake
includes CheckFortranFunctionExists
find_packages BLAS
find_packages BLAS
find_packages Threads
find_packages Threads
file: FindLATEX.cmake
file: FindLibArchive.cmake
includes FindPackageHandleStandardArgs
file: FindLibXml2.cmake
find_packages PkgConfig
includes FindPackageHandleStandardArgs
file: FindLibXslt.cmake
find_packages PkgConfig
includes FindPackageHandleStandardArgs
file: FindLua50.cmake
includes FindPackageHandleStandardArgs
file: FindLua51.cmake
includes FindPackageHandleStandardArgs
file: FindMFC.cmake
file: FindMPEG.cmake
includes FindPackageHandleStandardArgs
file: FindMPEG2.cmake
includes FindPackageHandleStandardArgs
includes FindSDL
file: FindMPI.cmake
includes FindPackageHandleStandardArgs
file: FindMatlab.cmake
file: FindMotif.cmake
includes FindPackageHandleStandardArgs
file: FindOpenAL.cmake
includes FindPackageHandleStandardArgs
file: FindOpenGL.cmake
includes FindX11
file: FindOpenMP.cmake
includes CheckCSourceCompiles
includes CheckCXXSourceCompiles
includes FindPackageHandleStandardArgs
file: FindOpenSSL.cmake
includes FindPackageHandleStandardArgs
file: FindOpenSceneGraph.cmake
includes Findosg_functions
find_packages ${_osg_module}
find_packages ${_osg_module}
includes FindPackageHandleStandardArgs
file: FindOpenThreads.cmake
includes FindPackageHandleStandardArgs
file: FindPHP4.cmake
includes FindPackageHandleStandardArgs
file: FindPNG.cmake
find_packages ZLIB
includes FindPackageHandleStandardArgs
file: FindPackageHandleStandardArgs.cmake
includes FindPackageMessage
includes CMakeParseArguments
file: FindPackageMessage.cmake
file: FindPerl.cmake
includes FindCygwin
includes FindPackageHandleStandardArgs
file: FindPerlLibs.cmake
includes FindPerl
includes FindPackageHandleStandardArgs
file: FindPhysFS.cmake
includes FindPackageHandleStandardArgs
file: FindPike.cmake
file: FindPkgConfig.cmake
file: FindPostgreSQL.cmake
file: FindProducer.cmake
includes FindPackageHandleStandardArgs
file: FindProtobuf.cmake
includes FindPackageHandleStandardArgs
file: FindPythonInterp.cmake
includes FindPackageHandleStandardArgs
file: FindPythonLibs.cmake
includes CMakeFindFrameworks
includes FindPackageHandleStandardArgs
file: FindQt.cmake
includes FindQt3
includes FindQt4
file: FindQt3.cmake
find_packages X11
find_packages Threads
file: FindQt4.cmake
includes CheckSymbolExists
includes MacroAddFileDependencies
includes "${_qt4_current_dir}/Qt4Macros.cmake"
includes FindPackageMessage
includes "${_qt4_current_dir}/Qt4ConfigDependentSettings.cmake"
file: FindQuickTime.cmake
includes FindPackageHandleStandardArgs
file: FindRTI.cmake
includes FindPackageHandleStandardArgs
file: FindRuby.cmake
includes FindPackageHandleStandardArgs
file: FindSDL.cmake
find_packages Threads
file: FindSDL_image.cmake
file: FindSDL_mixer.cmake
file: FindSDL_net.cmake
file: FindSDL_sound.cmake
file: FindSDL_ttf.cmake
file: FindSWIG.cmake
includes FindPackageHandleStandardArgs
file: FindSelfPackers.cmake
includes FindCygwin
file: FindSquish.cmake
file: FindSubversion.cmake
includes FindPackageHandleStandardArgs
file: FindTCL.cmake
includes CMakeFindFrameworks
includes FindTclsh
includes FindWish
includes FindPackageHandleStandardArgs
file: FindTIFF.cmake
includes FindPackageHandleStandardArgs
file: FindTclStub.cmake
includes FindTCL
file: FindTclsh.cmake
includes FindPackageHandleStandardArgs
file: FindThreads.cmake
includes CheckIncludeFiles
includes CheckLibraryExists
includes FindPackageHandleStandardArgs
file: FindUnixCommands.cmake
includes FindCygwin
file: FindVTK.cmake
includes UseVTKConfig40
find_packages VTK
includes UseVTKConfig40
file: FindWget.cmake
includes FindCygwin
includes FindPackageHandleStandardArgs
file: FindWish.cmake
file: FindX11.cmake
includes CheckFunctionExists
includes CheckLibraryExists
includes FindPackageMessage
file: FindXMLRPC.cmake
file: FindZLIB.cmake
includes FindPackageHandleStandardArgs
file: Findosg.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgAnimation.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgDB.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgFX.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgGA.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgIntrospection.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgManipulator.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgParticle.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgProducer.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgShadow.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgSim.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgTerrain.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgText.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgUtil.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgViewer.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgVolume.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: FindosgWidget.cmake
includes Findosg_functions
includes FindPackageHandleStandardArgs
file: Findosg_functions.cmake
file: FindwxWidgets.cmake
includes FindPackageHandleStandardArgs
file: FindwxWindows.cmake
file: FortranCInterface.cmake
includes ${FortranCInterface_SOURCE_DIR}/Detect.cmake
includes ${FortranCInterface_BINARY_DIR}/Output.cmake
file: FortranCInterface/Detect.cmake
file: Platform/AIX-GNU-C.cmake
includes Platform/AIX-GNU
file: Platform/AIX-GNU-CXX.cmake
includes Platform/AIX-GNU
file: Platform/AIX-GNU-Fortran.cmake
includes Platform/AIX-GNU
file: Platform/AIX-GNU.cmake
file: Platform/AIX-VisualAge-C.cmake
includes Platform/AIX-XL-C
file: Platform/AIX-VisualAge-CXX.cmake
includes Platform/AIX-XL-CXX
file: Platform/AIX-XL-C.cmake
file: Platform/AIX-XL-CXX.cmake
file: Platform/AIX-XL-Fortran.cmake
file: Platform/AIX.cmake
includes Platform/UnixPaths
file: Platform/BSDOS.cmake
includes Platform/UnixPaths
file: Platform/BeOS.cmake
includes Platform/UnixPaths
file: Platform/BlueGeneL.cmake
includes Platform/UnixPaths
file: Platform/CYGWIN-GNU-C.cmake
includes Platform/CYGWIN-GNU
file: Platform/CYGWIN-GNU-CXX.cmake
includes Platform/CYGWIN-GNU
file: Platform/CYGWIN-GNU-Fortran.cmake
includes Platform/CYGWIN-GNU
file: Platform/CYGWIN-GNU.cmake
file: Platform/CYGWIN.cmake
includes Platform/UnixPaths
file: Platform/Catamount.cmake
includes Platform/UnixPaths
file: Platform/Darwin-GNU-C.cmake
includes Platform/Darwin-GNU
file: Platform/Darwin-GNU-CXX.cmake
includes Platform/Darwin-GNU
file: Platform/Darwin-GNU-Fortran.cmake
includes Platform/Darwin-GNU
file: Platform/Darwin-GNU.cmake
file: Platform/Darwin-VisualAge-C.cmake
includes Platform/Darwin-XL-C
file: Platform/Darwin-VisualAge-CXX.cmake
includes Platform/Darwin-XL-CXX
file: Platform/Darwin-XL-C.cmake
file: Platform/Darwin-XL-CXX.cmake
file: Platform/Darwin-icc.cmake
includes Platform/UnixPaths
file: Platform/Darwin-icpc.cmake
includes ${CURRENT_SOURCE_PARENT}/Darwin-icc.cmake
file: Platform/Darwin.cmake
includes Platform/UnixPaths
file: Platform/DragonFly.cmake
includes Platform/FreeBSD
file: Platform/FreeBSD.cmake
includes Platform/UnixPaths
file: Platform/GNU.cmake
includes Platform/UnixPaths
file: Platform/Generic-ADSP-ASM.cmake
includes Platform/Generic-ADSP-Common
file: Platform/Generic-ADSP-C.cmake
includes Platform/Generic-ADSP-Common
file: Platform/Generic-ADSP-CXX.cmake
includes Platform/Generic-ADSP-Common
file: Platform/Generic-ADSP-Common.cmake
file: Platform/Generic-SDCC-C.cmake
file: Platform/Generic.cmake
file: Platform/HP-UX-GNU-C.cmake
includes Platform/HP-UX-GNU
file: Platform/HP-UX-GNU-CXX.cmake
includes Platform/HP-UX-GNU
file: Platform/HP-UX-GNU-Fortran.cmake
includes Platform/HP-UX-GNU
file: Platform/HP-UX-GNU.cmake
file: Platform/HP-UX.cmake
includes Platform/UnixPaths
file: Platform/Haiku.cmake
includes Platform/UnixPaths
file: Platform/IRIX.cmake
includes Platform/UnixPaths
file: Platform/IRIX64.cmake
includes Platform/UnixPaths
file: Platform/Linux-Clang-C.cmake
includes Platform/Linux-GNU-C
file: Platform/Linux-Clang-CXX.cmake
includes Platform/Linux-GNU-CXX
file: Platform/Linux-GNU-C.cmake
includes Platform/Linux-GNU
file: Platform/Linux-GNU-CXX.cmake
includes Platform/Linux-GNU
file: Platform/Linux-GNU-Fortran.cmake
includes Platform/Linux-GNU
file: Platform/Linux-GNU.cmake
file: Platform/Linux-Intel-C.cmake
includes Platform/Linux-Intel
file: Platform/Linux-Intel-CXX.cmake
includes Platform/Linux-Intel
file: Platform/Linux-Intel-Fortran.cmake
includes Platform/Linux-Intel
file: Platform/Linux-Intel.cmake
file: Platform/Linux-PGI-C.cmake
includes Platform/Linux-PGI
file: Platform/Linux-PGI-CXX.cmake
includes Platform/Linux-PGI
file: Platform/Linux-PGI-Fortran.cmake
includes Platform/Linux-PGI
file: Platform/Linux-PGI.cmake
file: Platform/Linux-PathScale-C.cmake
includes Platform/Linux-PathScale
file: Platform/Linux-PathScale-CXX.cmake
includes Platform/Linux-PathScale
file: Platform/Linux-PathScale-Fortran.cmake
includes Platform/Linux-PathScale
file: Platform/Linux-PathScale.cmake
file: Platform/Linux-SunPro-CXX.cmake
file: Platform/Linux-VisualAge-C.cmake
includes Platform/Linux-XL-C
file: Platform/Linux-VisualAge-CXX.cmake
includes Platform/Linux-XL-CXX
file: Platform/Linux-VisualAge-Fortran.cmake
includes Platform/Linux-XL-Fortran
file: Platform/Linux-XL-C.cmake
file: Platform/Linux-XL-CXX.cmake
file: Platform/Linux-XL-Fortran.cmake
file: Platform/Linux-como.cmake
file: Platform/Linux.cmake
includes Platform/UnixPaths
file: Platform/MP-RAS.cmake
includes Platform/UnixPaths
file: Platform/NetBSD.cmake
includes Platform/UnixPaths
file: Platform/OSF1.cmake
includes Platform/UnixPaths
file: Platform/OpenBSD.cmake
includes Platform/NetBSD
file: Platform/OpenVMS.cmake
includes Platform/UnixPaths
file: Platform/QNX.cmake
includes Platform/UnixPaths
file: Platform/RISCos.cmake
includes Platform/UnixPaths
file: Platform/SCO_SV.cmake
includes Platform/UnixPaths
file: Platform/SINIX.cmake
includes Platform/UnixPaths
file: Platform/SunOS-GNU-C.cmake
includes Platform/SunOS-GNU
file: Platform/SunOS-GNU-CXX.cmake
includes Platform/SunOS-GNU
file: Platform/SunOS-GNU-Fortran.cmake
includes Platform/SunOS-GNU
file: Platform/SunOS-GNU.cmake
file: Platform/SunOS.cmake
includes Platform/UnixPaths
file: Platform/Tru64.cmake
includes Platform/UnixPaths
file: Platform/ULTRIX.cmake
includes Platform/UnixPaths
file: Platform/UNIX_SV.cmake
includes Platform/UnixPaths
file: Platform/UnixPaths.cmake
file: Platform/UnixWare.cmake
includes Platform/UnixPaths
file: Platform/Windows-Borland-C.cmake
includes Platform/Windows-Borland
file: Platform/Windows-Borland-CXX.cmake
includes Platform/Windows-Borland
file: Platform/Windows-Borland.cmake
file: Platform/Windows-G95-Fortran.cmake
includes Platform/Windows-GNU-Fortran
file: Platform/Windows-GNU-C.cmake
includes Platform/Windows-GNU
file: Platform/Windows-GNU-CXX.cmake
includes Platform/Windows-GNU
file: Platform/Windows-GNU-Fortran.cmake
includes Platform/Windows-GNU
file: Platform/Windows-GNU.cmake
file: Platform/Windows-Intel.cmake
includes "${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake"
file: Platform/Windows-NMcl.cmake
includes Platform/Windows-cl
file: Platform/Windows-cl.cmake
includes ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake
includes ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake
includes Platform/cl
file: Platform/Windows-df.cmake
file: Platform/Windows-g++.cmake
includes ${CMAKE_ROOT}/Modules/Platform/Windows-gcc.cmake
file: Platform/Windows-icl.cmake
includes Platform/Windows-Intel
file: Platform/Windows-ifort.cmake
includes Platform/Windows-Intel
file: Platform/Windows-wcl386.cmake
file: Platform/Windows.cmake
includes Platform/WindowsPaths
file: Platform/WindowsPaths.cmake
file: Platform/Xenix.cmake
includes Platform/UnixPaths
file: Platform/cl.cmake
file: Platform/eCos.cmake
includes Platform/UnixPaths
file: Platform/gas.cmake
file: Platform/kFreeBSD.cmake
includes Platform/Linux
file: Platform/syllable.cmake
includes Platform/UnixPaths
file: Platform/BlueGeneP-base.cmake
file: Platform/BlueGeneP-dynamic-GNU-C.cmake
file: Platform/BlueGeneP-dynamic-GNU-CXX.cmake
file: Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
file: Platform/BlueGeneP-dynamic-XL-C.cmake
file: Platform/BlueGeneP-dynamic-XL-CXX.cmake
file: Platform/BlueGeneP-dynamic-XL-Fortran.cmake
file: Platform/BlueGeneP-dynamic.cmake
includes Platform/BlueGeneP-base
file: Platform/BlueGeneP-static-GNU-C.cmake
file: Platform/BlueGeneP-static-GNU-CXX.cmake
file: Platform/BlueGeneP-static-GNU-Fortran.cmake
file: Platform/BlueGeneP-static-XL-C.cmake
file: Platform/BlueGeneP-static-XL-CXX.cmake
file: Platform/BlueGeneP-static-XL-Fortran.cmake
file: Platform/BlueGeneP-static.cmake
includes Platform/BlueGeneP-base
file: GetPrerequisites.cmake
file: ITKCompatibility.cmake
file: InstallRequiredSystemLibraries.cmake
file: KDE3Macros.cmake
includes AddFileDependencies
file: MacroAddFileDependencies.cmake
file: Qt4ConfigDependentSettings.cmake
find_packages OpenGL
find_packages PNG
find_packages X11
find_packages Freetype
find_packages ZLIB
find_packages OpenSSL
find_packages Threads
file: Qt4Macros.cmake
file: SelectLibraryConfigurations.cmake
file: SquishTestScript.cmake
file: SystemInformation.cmake
file: TestBigEndian.cmake
includes CheckTypeSize
file: TestCXXAcceptsFlag.cmake
file: TestForANSIForScope.cmake
file: TestForANSIStreamHeaders.cmake
includes CheckIncludeFileCXX
file: TestForSSTREAM.cmake
file: TestForSTDNamespace.cmake
file: UseEcos.cmake
find_packages Tclsh
file: UsePkgConfig.cmake
file: UseQt4.cmake
file: UseSWIG.cmake
file: UseVTK40.cmake
file: UseVTKBuildSettings40.cmake
file: UseVTKConfig40.cmake
file: Use_wxWindows.cmake
includes ${wxWidgets_USE_FILE}
find_packages wxWidgets
find_packages wxWindows
file: UsewxWidgets.cmake
file: VTKCompatibility.cmake
file: ecos_clean.cmake
file: kde3uic.cmake
file: CMakeParseArguments.cmake
files: 398
files: 160
-------------------------

With full path (32):
"${BundleUtilities_cmake_dir}/GetPrerequisites.cmake"
"${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}"
"${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake"
"${CMAKE_TOOLCHAIN_FILE}"
"${PROJECT_SOURCE_DIR}/CTestConfig.cmake"
"${PROJECT_SOURCE_DIR}/DartConfig.cmake"
"${_qt4_current_dir}/Qt4ConfigDependentSettings.cmake"
"${_qt4_current_dir}/Qt4Macros.cmake"
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCCompiler.cmake
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeFortranCompiler.cmake
${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake
${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake
${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake
${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake
${CMAKE_ROOT}/Modules/CMakeParseImplicitLinkInfo.cmake
${CMAKE_ROOT}/Modules/FindX11.cmake
${CMAKE_ROOT}/Modules/Platform/Windows-gcc.cmake
${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}
${CMAKE_USER_MAKE_RULES_OVERRIDE_C}
${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran}
${CMAKE_USER_MAKE_RULES_OVERRIDE}
${CURRENT_SOURCE_PARENT}/Darwin-icc.cmake
${FLTK2_DIR}/FLTK2Config.cmake
${FLTK_DIR}/FLTKConfig.cmake
${FortranCInterface_BINARY_DIR}/Output.cmake
${FortranCInterface_SOURCE_DIR}/Detect.cmake
${ITK_DIR}/ITKConfig.cmake
${_map_file}
${dependency_file}
${wxWidgets_USE_FILE}
\"${CMAKE_TOOLCHAIN_FILE}\"

Compiler files: (12)
Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}
Compiler/${CMAKE_CXX_COMPILER_ID}-CXX
Compiler/${CMAKE_C_COMPILER_ID}-C
Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran
Compiler/GNU
Compiler/GNU-C
Compiler/GNU-CXX
Compiler/PGI
Compiler/PathScale
Compiler/XL-C
Compiler/XL-CXX
Compiler/XL-Fortran


Platform files (42):
Platform/${CMAKE_BASE_NAME}
Platform/${CMAKE_SYSTEM_NAME}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}-${CMAKE_SYSTEM_PROCESSOR}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR}
Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran
Platform/AIX-GNU
Platform/AIX-XL-C
Platform/AIX-XL-CXX
Platform/BlueGeneP-base
Platform/CYGWIN-GNU
Platform/Darwin-GNU
Platform/Darwin-XL-C
Platform/Darwin-XL-CXX
Platform/FreeBSD
Platform/Generic-ADSP-Common
Platform/HP-UX-GNU
Platform/Linux
Platform/Linux-GNU
Platform/Linux-GNU-C
Platform/Linux-GNU-CXX
Platform/Linux-Intel
Platform/Linux-PGI
Platform/Linux-PathScale
Platform/Linux-XL-C
Platform/Linux-XL-CXX
Platform/Linux-XL-Fortran
Platform/NetBSD
Platform/SunOS-GNU
Platform/UnixPaths
Platform/Windows-Borland
Platform/Windows-GNU
Platform/Windows-GNU-Fortran
Platform/Windows-Intel
Platform/Windows-cl
Platform/WindowsPaths
Platform/cl

Find-modules (34):
Find${_osg_module}
FindBLAS
FindCVS
FindCygwin
FindDart
FindDoxygen
FindFreetype
FindGit
FindGnuplot
FindHTMLHelp
FindJPEG
FindKDE4Internal
FindOpenGL
FindOpenSSL
FindPNG
FindPerl
FindPkgConfig
FindPythonInterp
FindQt3
FindQt4
FindSDL
FindSubversion
FindTCL
FindTclsh
FindThreads
FindUnixCommands
FindVTK
FindWget
FindWish
FindX11
FindZLIB
Findosg_functions
FindwxWidgets
FindwxWindows

Other files (40):
"CMakeFind${_CMAKE_EXTRA_GENERATOR_NO_SPACES}"
${CMAKE_SYSTEM_INFO_FILE}
AddFileDependencies
CMakeASMInformation
CMakeCommonLanguageInclude
CMakeDetermineASMCompiler
CMakeDetermineSystem
CMakeFindBinUtils
CMakeFindFrameworks
CMakeGenericSystem
CMakeParseArguments
CMakeSystemSpecificInformation
CMakeTestASMCompiler
CMakeTestCompilerCommon
CMakeVS6BackwardCompatibility
CMakeVS7BackwardCompatibility
CTest
CTestTargets
CheckCSourceCompiles
CheckCXXSourceCompiles
CheckFortranFunctionExists
CheckFunctionExists
CheckIncludeFile
CheckIncludeFileCXX
CheckIncludeFiles
CheckLibraryExists
CheckSymbolExists
CheckTypeSize
FindPackageHandleStandardArgs
FindPackageMessage
KDE3Macros
MacroAddFileDependencies
SelectLibraryConfigurations
TestBigEndian
TestCXXAcceptsFlag
TestForANSIForScope
TestForANSIStreamHeaders
TestForSSTREAM
TestForSTDNamespace
UseVTKConfig40
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FindInclucdedFiles.rb
Type: application/x-ruby
Size: 1047 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20101006/bd0ea02d/attachment-0002.rb>


More information about the cmake-developers mailing list