warning: cmake changes

Lubomir I. Ivanov neolit123 at gmail.com
Thu Dec 17 15:08:52 PST 2015


On 18 December 2015 at 00:21, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
> On 17 December 2015 at 23:58, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
>> On 17 December 2015 at 23:52, Tomaz Canabrava <tcanabrava at kde.org> wrote:
>>> Lubomir, what's your system? Let me try to compile locally using the same
>>> thing as you have.
>>>
>>
>> cmake version 3.2.0-rc2
>> (will update to a new version in a bit and report if the same issues occur)
>>
>
> so the same issues occurs with cmake 3.4.1.
>
> here some verbose output (VERBOSE=1)
>
> <snip>
> [ 59%] Building CXX object desktop-widgets/CMakeFiles/subsurface_interface.dir/u
> pdatemanager.cpp.obj
> cd /d C:\dev\subsurface\build\desktop-widgets &&
> C:\bin\mingw\bin\g++.exe   -DBT_SUPPORT -DNO_MARBLE -DQT_BLUETOOTH_LIB
> -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB
> -DQT_POSITIONING_LIB -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB
> -DQT_WEBKITWIDGETS_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB
> -DSUBSURFACE_SOURCE=\"C:/dev/subsurface\" -D_WIN32
> @CMakeFiles/subsurface_interface.dir/includes_CXX.rsp  -Wall -g
> -mwindows -o CMakeFiles\subsurface_interface.dir\updatemanager.cpp.o
> bj -c C:\dev\subsurface\desktop-widgets\updatemanager.cpp
> C:\dev\subsurface\desktop-widgets\updatemanager.cpp: In constructor 'UpdateManag
> er::UpdateManager(QObject*)':
> C:\dev\subsurface\desktop-widgets\updatemanager.cpp:22:78: error:
> 'subsurface_git_version' was not declared in this scope
>
> --------
>
> so subsurface is located in:
> c:\dev\subsurface\
>
> my libs are located in:
> c:\lib\
>
> qt is located in:
> c:\bin\qt\
>
> this:
> cd /d C:\dev\subsurface\build\desktop-widgets
>
> enters the desktop-widgets path where the RSP to include is:
> @CMakeFiles/subsurface_interface.dir/includes_CXX.rsp
>
> contents of the file:
> -I/lib/libgit2/include -I/lib/libssh2/include
> -I/lib/libdivecomputer/include -I/lib/libgrantlee/library/include
> -I/lib/libxml/include -I/lib/sqlite3/include -I/lib/libxslt/include
> -I/lib/libzip/include -I/lib/libusb/include
> -I/lib/libusb/include/libusb-1.0

yikes,

so the reason i have two libusb paths from pkg-config is because
libdivecomputer boldly uses <libusb-1.0/libusb.h>, while subsurface
uses <libusb.h>
we can safely assume that <libusb.h> is a *better way* to use an include.

what i can't explain, is why if i remove the libusb paths from the RSP
file or if i hide my /lib/libusb path, version.h is properly included
in updatemanager.cpp and the file compiles...

another way to fix it in the RSP is to move:
-IC:/dev/subsurface/subsurface-core
before:
-I/lib/libzip/include -I/lib/libusb/include -I/lib/libusb/include/libusb-1.0

this is starting to smell like a mingw bug... -_-

lubomir
--


More information about the subsurface mailing list