This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Ninja problem trying to configure build Qt-6.4.3 on Windows

Tags: None
(comma "," separated)
drfritze
Registered Member
Posts
9
Karma
0
My goal is to build kMyMoney from source. I am trying for Windows to start with but will move to Ubuntu and cross-compile if I need to.

I downloaded a zip file "qt-everywhere-src-6.4.3.zip" from the Qt website and unzipped. Ninja is installed and on the Windows path. When I tried to run "configure.bat", I got the following message--

CMake Error:
Running
'cygdrive/c/Program Files/Ninja/ninja.exe' '-c' 'cygdrive/c/Users/<my name>/Documents/NetBeansProjects/kMyMoney/qt-6.4.3/CMakeFiles/CMakeTmp' '-t' 'recompact'
failed with:
ninja: fatal: chdir to '/cygdrive/c/ ... /CMakeFiles/CMakeTmp/' - No such file or directory

Um yes, that directory exists and is alive and well. Can someone please interpret and help me understand what's going on?
User avatar
ostroffjh
Registered Member
Posts
253
Karma
0
OS
KMyMoney is not yet ready for Qt6, so it's quite likely it won't compile, no matter what your current ninja problem is. Try with Qt5. Also, from distant memory, cygwin is very good, but doesn't always play nicely with native Windows programs, so one possibility it to try with a cygwin built ninja.

However, I'd ask what command (if any) did you run before ninja? ninja will do the compile, but you need to configure first, usually with cmake. I'm also very curious why you have NetBeans in the path. Is it only a directory you had handy? That name makes me think of Java, which is not used at all with KMyMoney.

[edit: just becauwse I hit Enter too soon.]
drfritze
Registered Member
Posts
9
Karma
0
In that case I will switch to Qt-5.15 and see if I have the same problems. I'm only using Ninja because when I tried to run the Qt configure earlier, there was a warning that using something else could lead to errors. I did not run Ninja per se. I installed a pre-built download of Ninja. I then unzipped Qt and ran configure.bat. I *am* trying to do a configuration and use the resulting make file. I'm building Qt from source because I can't afford $300/mo for a Qt license.

As for NetBeans, I've seen that it and Cygwin play very nicely together as long as you use an older version of GDB and a suitable version of G++. That environment has produced a number of functional, efficient Windows console applications. It's been many, many years (like MSC 3.0) since I've done much trying to use command lines for development so I would hope to get all these source builds into NetBeans.

One step at a time. If I have problems with building Qt5, I'll see about Ninja from source and come back with any issues.
drfritze
Registered Member
Posts
9
Karma
0
However, @ostroffjh you didn't the question. Windows paths look like this-- c:\Users\<my name>\Documents\NetBeansProjects\kMyMoney\qt-6.4.3\CMakeFiles\CMakeTmp

What is-- /cygdrive/c/Users/<my name>/Documents/NetBeansProjects/kMyMoney/qt-6.4.3/CMakeFiles/CMakeTmp?

It looks like a subdirectory named cygdrive in the root of the default drive. I agree there is no such directory. Why is Ninja trying to access this weird place and not the actual; path to the CMakeTmp subdirectory?
User avatar
ostroffjh
Registered Member
Posts
253
Karma
0
OS
What experience do you have using cygwin? It really helps if you understand the tools you are using. Cygwin tries to give you a much more Linux-like environment to work with within the Windows system. Although cygwin understands Windows paths with drive letters and back slashes, all native cygwin tools use unix style path names, with / being the "root" directory, which in terms of it's Windows location is set up when cygwin is first set up. It uses /cygdrive/X to represent Windows drive X:. Another potential gotcha that might or might not matter in your efforts is that native cygwin tools, like on Linux, use \r as a line ending, compared to Windows' \r\n (plain line feed vs. carriage return/line feed combination.)

However, to return to a previous bit of the discussion, I am guessing that you are using NetBeans solely as an IDE. My confusion was that it was originally developed as an IDE specifically for Java, which is totally irrelelvant to Cygwin, Qt, KDE and KMyMoney. However, using it as an IDE for other languages makes sense.

Minor point - the program is generally referred to as KMyMoney, not kMyMoney (leading K is upper case) but that should have no effect on development.
drfritze
Registered Member
Posts
9
Karma
0
As I stated, I haven't used command lines for program development for over 15 years; IDEs make life a lot easier. I'm a hobbyist with an array of languages I've used over the last 50 years. I've used Cygwin as tool set for IDEs for about 7 years and have great success with NetBeans. I started my most recent project in Eclipse with Java but it got to be too complex and slow to be practical. I rewrote the program trying to use Eclipse with C++ (Cygwin) but had serious problems with the debugger in that environment so I transitioned to NetBeans with Cygwin as the tool set and have had great success. In that environment it's a Windows console app that I run in NetBeans in debug mode; I've never made a release version for that one. That project, however, is well advanced and I'm moving it to VS2022 as a WinAPI application.

In the meantime, my MS Money Sunset seems to be on the verge of overloading. I tried converting to kMyMoney but conversion is horrendously difficult and the investment process are crude. I would like to build kMyMoney locally and fix some of that stuff but Qt is a prerequisite and, again, I'm not willing to pay $300/mo to buy a Qt license so I'm trying to build Qt locally. I expect problems and the problem we are discussing is the first one.

Major point: I am using Windows 11; does Ninja ruin in Win11 or do I need to switch this all to my Win10 machine? Can Ninja create a CMake file for me for Qt? At this point, I'm beginning to have doubts. If you think it can, then why is it telling the directory CMakeTmp does not exist when it's right there in the directory tree along with Qt source directories and configure.bat? How do I (can I) get around this error? Minor point: I haven't found a download for Qt 5.15 yet but when I have it, I expect this same Ninja problem will raise it's head.

Please understand, I'm not trying to be overly defensive but I feel the need to give you a flavor of my background. I am not by any means an expert but I am also not a light weight at program development. I am facing new tools (Ninja and maybe the Cygwin command line) and have questions.

[run, not ruin]
User avatar
ostroffjh
Registered Member
Posts
253
Karma
0
OS
I'll try to start with addressing some of the immediate, concrete issues. Sorry for some rambling. To start, I don't understand why you think you would need a commercial license for Qt. You can get all the libraries under their open source license. Building Qt yourself (as far as I can tell) does not change any of the licensing limitations or obligations. I'd suggest looking at that again, to be sure you really do need to build Qt.

I have myself not used cygwin in many years, and don't have a Windows instance to test, but, I have no reason to think ninja won't run under cygwin. However, my gut feel is that you are probably better off running cygwin's own ninja instead of a native Windows version. I also have no reason to think ninja won't work on Windows 11. Separate thought - since you have Win11, have you considered using WSL? That would give you something closer to a native Linux style development environment. I have not used it, so I don't know what the pitfalls might be.

To get to the ninja error, first, I have no idea why it can't find that directory, but with the "..." in the middle of the error, are you absolutely certain it is really pointing to where you think it is? Have you also rechecked permissions of that directory, and all those above it? Separately, at what point in the process are you trying to run ninja? I've never used -t with ninja, and is the recompact really necessary? Have you already run cmake? Is it possible the problem is not that CMakeTmp doesn't exist, but that it is empty? Also, if you are using NetBeans, should there be any reason to manually run ninja?

Sorry for more questions than real answers at this point. I do believe you will eventually get to the point of compiling KMyMoney so you can actually focus on helping improve the program. Unfortunately, it looks like it will be a bumpier road than it really should be.


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], kesang, Yahoo [Bot]