Jan Woetzel wrote:
Brad King wrote:

If it has found this file then why does it need a find script to find QtDBUS since it has just found something from the package?


Brad,
I do not agree if multiple packages/find scripts come into play because each client project has to take care of cmakes internal structure.

We use FIND_PACKAGE with <Package>Config.cmake for our *major* packages and are happy with some possibly "interactive" or "-D" <Package>_DIR settings.

However, our >70 additional "simple" find scripts do not belong to a special package. Just like the CMake/Modules scripts teh y look for some external libs+headers. They are used by many projects and canbe thought of as "installed", belong to an independant cvs etc.

To use these additional find scripts
- without "complicated" -D setting on cmake call
- wrapping shell script etc...
we need something as ugly as this:


# environment variable should contain our additional cmake find script Modules
SET(CMAKE_MODULE_PATH $ENV{CMAKE_MODULE_PATH})
IF(NOT CMAKE_MODULE_PATH)
MESSAGE(FATAL_ERROR "FATAL ERROR: Please set shell variable CMAKE_MODULE_PATH to our additional CMakeModules repository.")
ELSE(NOT CMAKE_MODULE_PATH)
 # a user modules path is set
# check for at least one of our find scripts to be sure the path is no crap. FIND_FILE(BIAS_CMAKE_MODULE_PATH_OK FindBLAS.cmake ${CMAKE_MODULE_PATH} DOC "testing CMAKE_MODULE_PATH")
 IF (NOT BIAS_CMAKE_MODULE_PATH_OK)
MESSAGE(FATAL_ERROR "Your CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} is invalid because FindBLAS.cmake not found. Please set shell variable CMAKE_MODULE_PATH to your (cvs) CMakeModules repository.")
 ENDIF (NOT BIAS_CMAKE_MODULE_PATH_OK)
ENDIF(NOT CMAKE_MODULE_PATH)
MARK_AS_ADVANCED(BIAS_CMAKE_MODULE_PATH_OK)

Exactly. This is why I don't want the 3rd party files...users will have to set something like this.

Extending cmake would be much easier and more "open"
with an easy way to extend teh search path for FIND_PACKAGE.

What we really need is a way to make FIND_PACKAGE find the QtDBUSConfig.cmake file and set QtDBUS_DIR more robustly. Then you would not need any FindQtDBUS.cmake file at all. It looks like this was overlooked in the recent FIND_* changes.

-Brad
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to