Qt-contributors-summit-2013-CMake-files-feedback-requests: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Add "cleanup" tag) |
m (Categorize) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Cleanup | reason=Auto-imported from ExpressionEngine.}} | {{Cleanup | reason=Auto-imported from ExpressionEngine.}} | ||
[[Category:QtCS2013]] | |||
# CMake files can be used elegantly for all platforms and most Qt configurations (shared/static/mac-framework/cross-compiles), especially with CMake 2.8.11 | # CMake files can be used elegantly for all platforms and most Qt configurations (shared/static/mac-framework/cross-compiles), especially with CMake 2.8.11 | ||
# # Recent features in CMake and Qt 5.1 implement ‘target usage requirements’ http://community.kde.org/Frameworks/Epics/CMake_target_usage_requirements | # # Recent features in CMake and Qt 5.1 implement ‘target usage requirements’ http://community.kde.org/Frameworks/Epics/CMake_target_usage_requirements | ||
Line 49: | Line 49: | ||
# <div class="de1">add_library<span class="br0">(</span>foolib </div> | # <div class="de1">add_library<span class="br0">(</span>foolib </div> | ||
# <div class="de1"> foo.<span class="me1">cpp</span></div> | # <div class="de1"> foo.<span class="me1">cpp</span></div> | ||
# <div class="de1"> $<span class="sy0"> | # <div class="de1"> $<span class="sy0"><</span>$<span class="sy0"><</span>PLATFORM_ID<span class="sy0">:</span>WIN32<span class="sy0">>:</span>foo_win.<span class="me1">cpp</span><span class="sy0">></span></div> | ||
# <div class="de1"><span class="br0">)</span></div> | # <div class="de1"><span class="br0">)</span></div> | ||
# <div class="de2">target_link_libraries<span class="br0">(</span>foolib </div> | # <div class="de2">target_link_libraries<span class="br0">(</span>foolib </div> | ||
# <div class="de1"> bar</div> | # <div class="de1"> bar</div> | ||
# <div class="de1"> $<span class="sy0"> | # <div class="de1"> $<span class="sy0"><</span>$<span class="sy0"><</span>PLATFORM_ID<span class="sy0">:</span>UNIX<span class="sy0">>:</span>unixlib<span class="sy0">></span></div> | ||
# <div class="de1"><span class="br0">)</span></div> | # <div class="de1"><span class="br0">)</span></div> | ||
Latest revision as of 17:17, 6 January 2017
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
- CMake files can be used elegantly for all platforms and most Qt configurations (shared/static/mac-framework/cross-compiles), especially with CMake 2.8.11
- # Recent features in CMake and Qt 5.1 implement ‘target usage requirements’ http://community.kde.org/Frameworks/Epics/CMake_target_usage_requirements
- # https://qt.gitorious.org/qt/qtbase/blobs/dev/tests/auto/cmake/test_interface/CMakeLists.txt
- Qt CI tests the CMake files in many scenarios in the build and install locations.
- Upcoming features in CMake upstream make using static Qt builds more elegant
- # A file needs to be generated whenever QtGui is used which loads the platform plugin (for qmake feature-parity). This will be automatic.
- # Support for multiple toolchains and proper sysroot handling will make using Qt in cross-compile scenarios more easy.
- CMake toolchain files for all platforms will be generated while building Qt: https://codereview.qt.io/#change,53858
- CMake functionality is growing ever-more declarative
- find_package(Qt4)
- find_package(Qt5Core)
- qt4_generate_moc(myfile.h moc_myfile.cpp TARGET qt4_foo) # Note, qt5_foo target doesn't
- # exist until below.
- qt5_generate_moc(myfile.h moc_myfile.cpp TARGET qt5_foo) # Note, qt5_foo target doesn't
- # exist until below.
- add_library(qt4_foo ...)
- add_library(qt5_foo ...)
- Use of CMake is growing more declarative. Ie from
- set(srcs foo.cpp)
- if (WIN32)
- list(APPEND srcs foo_win.cpp)
- endif()
- add_library(foolib ${srcs})
- target_link_libraries(foolib bar)
- if (UNIX)
- target_link_libraries(foolib unixlib)
- endif()
to
- add_library(foolib
- foo.cpp
- $<$<PLATFORM_ID:WIN32>:foo_win.cpp>
- )
- target_link_libraries(foolib
- bar
- $<$<PLATFORM_ID:UNIX>:unixlib>
- )
in version 2.8.13.
- CMake might replace its current language with a more-declarative one (Lua).
Tasks:
- Improve Creator CMake support
- Complete the cross compiling features upstream
- Implement CPack generator for BB10 bar files.
- Implement UI in creator to create packages in all formats known to CPack