[CMake] FindxxWidgets.cmake: wrong wxWidgets_INCLUDE_DIRS on UNIX
Florent Teichteil
florent.teichteil at gmail.com
Thu Jul 2 11:26:35 EDT 2009
Tyler Roscoe a écrit :
> On Wed, Jul 01, 2009 at 07:23:27PM +0200, Florent Teichteil wrote:
>> // BEGINNING OF CMakeLists.txt
>>
>> set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
>> find_package(wxWidgets COMPONENTS base core REQUIRED)
>> include_directories(${wxWidgets_INCLUDE_DIRS})
>> add_definitions(${wxWidgets_DEFINITIONS})
>> message(STATUS ${wxWidgets_INCLUDE_DIRS})
>>
>> // END OF CMakeLists.txt
>>
>> When I run "cmake ." in a terminal window, I get the following output:
>
> Don't do in-source builds, for they lead to suffering. Check the FAQ for
> details.
>
>> -- /usr/lib/wx/include/gtk2-unicode-release-2.8/usr/include/wx-2.8
>> -- Configuring done
>> -- Generating done
>>
>> The first line gives the value of "wxWidgets_INCLUDE_DIRS" which is
>> obviously wrong. It seems 2 paths have been concatenated without white
>> space. I think it should be something like
>> "/usr/lib/wx/include/gtk2-unicode-release-2.8 /usr/include/wx-2.8".
>
> Try message(STATUS "${wxWidgets_INCLUDE_DIRS}"). My guess is that
> variable is a list and the way you are using it in message() is
> flattening that list.
>
I've just found the error I made. I defined another CMakeLists.txt file
in a sub-directory containing the source code. Unfortunately, I declared
it in the root CMakeLists.txt file (using the command add_subdirectory)
after the wxwidgets macros, because I thought that it would be processed
after the main file. But this is not the case: it seems the
add_subdirectory command immediately processes the sub-directory's
CMakeLists.txt file, so that the wxwidgets include paths were not
defined in the sub-directory's generated Makefile.
Thank you all very much for your help,
Florent
More information about the CMake
mailing list