WIP:Conversion to the cmake building system.
#46
Draft
Ghost
wants to merge 1 commits from feat/cmakeConv
into master
pull from: feat/cmakeConv
merge into: TDE:master
TDE:r14.1.x
TDE:master
TDE:fix/eventloop-clenaup
TDE:feat/delete-screen-intersect
TDE:fix/various
TDE:fix/issue/142-r1
TDE:fix/tqtextcodec-locale-destr
TDE:feat/dedup-tqobject
TDE:fix/no-thread
TDE:feat/naive-dedup
TDE:feat/cmakeConv-r1
TDE:r14.0.x
TDE:feat/add-interix-support
Reviewers
Request review
No reviewers
Labels
General - need additional info from contributor PR/keep-branch
Pull request - do not delete branch after merging PR/not-ok
Pull request - need fixing PR/rfc
Pull request - request for comments PR/update-trans
Pull request - update to translation files needed PR/wip
Pull request - work in progress RS/R14.0.x
Related to R14.0.x series RS/R14.1.x
Related to R14.1.x series SL/critical
Severity level - critical SL/major
Severity level - major SL/minor
Severity level - minor SL/normal
Severity level - normal SL/regression
Severity level - regression from previous version SL/trivial
Severity level - trivial SL/wishlist
Severity level - wishlist request ST/duplicate
Status - duplicate of another issue ST/invalid
Status - invalid report ST/notourproblem
Status - not our problem ST/rejected
Status - rejected ST/wontfix
Status - won't fix ST/worksforme
Status - works for me, unable to reproduce
Apply labels
Clear labels
GE/need-info
General - need additional info from contributor PR/keep-branch
Pull request - do not delete branch after merging PR/not-ok
Pull request - need fixing PR/rfc
Pull request - request for comments PR/update-trans
Pull request - update to translation files needed PR/wip
Pull request - work in progress RS/R14.0.x
Related to R14.0.x series RS/R14.1.x
Related to R14.1.x series SL/critical
Severity level - critical SL/major
Severity level - major SL/minor
Severity level - minor SL/normal
Severity level - normal SL/regression
Severity level - regression from previous version SL/trivial
Severity level - trivial SL/wishlist
Severity level - wishlist request ST/duplicate
Status - duplicate of another issue ST/invalid
Status - invalid report ST/notourproblem
Status - not our problem ST/rejected
Status - rejected ST/wontfix
Status - won't fix ST/worksforme
Status - works for me, unable to reproduce
No Label
GE/need-info
PR/keep-branch
PR/not-ok
PR/rfc
PR/update-trans
PR/wip
RS/R14.0.x
RS/R14.1.x
SL/critical
SL/major
SL/minor
SL/normal
SL/regression
SL/trivial
SL/wishlist
ST/duplicate
ST/invalid
ST/notourproblem
ST/rejected
ST/wontfix
ST/worksforme
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
Assign users
Clear assignees
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: TDE/tqt3#46
Reference in new issue
There is no content yet.
Delete Branch 'feat/cmakeConv'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Rem: 3 files to generate first with parameters provided by configure:
check for:
Amarok's MySQL, HAVE_STRUCT_ST_MYSQL vs HAVE_STRUCT_MYSQL
Have a look at the Threading support.
I would suggest not to use the TDEMacros here at all: it will be tricky to make them work correctly without pre-installed tqt utils.
It is clear that there is no right to use:
…but avoiding using TDEMacros as a whole doesn't seem like a good idea to me. Our macros makes writing CMake rules simply and clearly, so here I don't see as beneficial to throw this advantage and wrote basically the same rules in a less clear way.
I assume that there may be a need to solve parts like calling
tqmoc
(ie AUTOMOC) and others where is commonly already available tqtinterface, but I assume that not-use TDEMacros would be more inconvenience.I'm always open to suggestions (especially from you), but do you have something in mind that can be tricky to solve with the usual macros? Can you elaborate?
In general, I actively dislike leaking of the TDE-specific macros to external dependencies even those are maintained in TDE. IMHO it's a dirty practice, and the fact that they are still included as a submodules heavily mangles the commit history.
To be specific, in case of tqt, it probably will create troubles with dependencies upon
moc
anduic
, as those won't be avaliable during compile time. So at least you will have to avoid thetde_add_executable
andtde_add_library
macros for most of code base. As for moc/automoc support, it probably could be worked-around in some way, but the uic support (used intools/
) likely will have to be rewritten quite a lot.Without those two I don't really see big benefits in dependencies upon the tde's cmake.
efc6081812
toc418c3b885
3 years agoI first looked closely up to MOC. In TQt, I found the difference in using AUTOMOC.
In TDE use AUTOMOC performs processing matching
*.h
files, while in TQt, it is necessary to process the*.cpp
files as such. In addition, header files are processed separately intomoc_<header>.cpp
. Yes, this will need to be solved. However, this does not seem to be a large obstacle that would mean to avoid usingtde_add_executable
andtde_add_library
.c418c3b885
to12a7199e06
3 years ago12a7199e06
to9ee7c15577
3 years ago9ee7c15577
to347e57984d
3 years ago347e57984d
toa10d01d66c
3 years agoa10d01d66c
to6669cd98c8
3 years ago6669cd98c8
to7ccc7d40ea
3 years ago7ccc7d40ea
tof47dab0206
3 years agof47dab0206
to1b162c47c9
3 years ago1b162c47c9
to12856f49da
3 years ago12856f49da
to2a39efa10e
3 years ago2a39efa10e
to53a8cfd696
3 years ago53a8cfd696
to688d596f02
3 years ago688d596f02
to8579e50a13
3 years agof4264e31e7
tof9ac477c7c
3 years agoI get this error today (didn't have any yesterday):
This should be fixed by the previous commit.
78ba7fbbf1
toabd2feb6be
3 years agoabd2feb6be
to09b2bb2f26
3 years agofba599b4c2
tod804694e78
3 years agod804694e78
tob4eafdf45f
3 years agob4eafdf45f
to5ecda98929
3 years ago5ecda98929
to7a0995ccd1
3 years ago14c78fe986
to54291eb8c1
3 years ago3e021c4388
toad34ea7f25
3 years ago40e7391758
tob9d770defd
3 years agodb0b91a911
to5c5c13cb89
3 years agoea810eb9ec
tob3abc36767
3 years ago94951b2511
to5c3b818e1d
3 years ago5c3b818e1d
to107b36f702
3 years ago107b36f702
to24366eaee7
3 years ago24366eaee7
toe90a28cc3c
3 years agoe90a28cc3c
to2a2ee6dc02
3 years ago@SlavekB can you give It a building test "as-is"?
I expect many things to be fixed but "as-is" the core tqt3 with default options should build.
I made the test "as-is" and it was successful. As expected, the resulting library cannot work because it does not provide anything.
I added two minor commits:
Current DEB packages are built with UnixODBC, so I added detection and use UnixODBC next to libiodbc.
Although OpenGL detection has been successfully performed, in
ntqmodules.h
has not been definedTQT_MODULE_OPENGL
. In any case, it will probably need some more work due toQT_DLOPEN_OPENGL
. I didn't deal with it now.Of course, both deserve a squash to the main CMake conversion commit.
To clarify the previous comment: Because the purpose of the library is to provide all exported functions, there is a need instead of linking to connect modules to the final library to use
EMBED
. Indeed, exactly for this purpose there is a defined variableqtlib_embed
to which the modules are added. I tried instead ofLINK
to useEMBED ${qtlib_embed}
, but this caused problems that we need to explore and solve.Solving problems for changing from linking to embedding has shown to be easier than I expected. So I added the third commit that made a mentioned change for embedding modules to the target library. Now the library has increased its size significantly and should provide expected functions.
Great work Greg, really looking forward for when this is ready :-)
I have removed explicite linking with the threading library from the kernel-static lib otherwise It ends up in FTBFS on my system, none of the tutorials passes.
Please check on your platform.
On my system when I build with CMAKE_VERBOSE_MAKEFILE=ON I see that the static libs that needs threading get both the TQT_THREAD_SUPPORT definition and the -lpthread library, as a result the tutorials pass.
fd8dfa0f2f
tob615803a36
3 years agob615803a36
to5aeb3174e4
3 years agoI just did a test building the current state and fixed FTBFS.
No more research I did in this moment.
d87251ee25
to12bd9b6b2b
2 months agoI have made many changes, many things are still unfinished, many things still require remodeling. It is great that there is more interest in working with this task. There are a number of things that will have to be discussed before it gets the final state. Many of these things are already mentioned in #117.