initial import

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2015-12-10 05:06:13 +02:00
commit bfbc380756
6274 changed files with 2715707 additions and 0 deletions

104
.gitignore vendored Normal file
View file

@ -0,0 +1,104 @@
# This file is used to ignore files which are generated in the Qt build system
# ----------------------------------------------------------------------------
callgrind.out.*
pcviewer.cfg
*~
*.a
*.moc
*.o
*.obj
*.orig
*.swp
*.rej
*.so
*.pbxuser
*.mode1
*.mode1v3
*_pch.h.cpp
*_resource.rc
.#*
*.*#
tags
.DS_Store
*.debug
Makefile*
*.prl
*.app
*.pro.user*
*.qmlproject.user*
*.gcov
mkspecs/default
moc_*.cpp
src/tools/uic/qclass_lib_map.h
ui_*.h
.com.apple.timemachine.supported
tests/auto/qlibrary/libmylib.so*
tests/auto/qresourceengine/runtime_resource.rcc
tools/qtestlib/chart/chart*
tools/qtestlib/updater/updater*
tools/activeqt/testcon/testcon.tlb
translations/*.qm
translations/*_untranslated.ts
qrc_*.cpp
/.device.vars
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
# MinGW generated files
*.Debug
*.Release
# Directories to ignore
# ---------------------
apidocs
build
include/*
privateinclude/*
plugins/*/*
.rcc
.pch
.metadata
# runonphone crash dumps
d_exc_*.txt
d_exc_*.stk
# Generated by abldfast.bat from devtools.
.abldsteps.*
# Carbide project files
# ---------------------
.project
.cproject
.make.cache
*.d
# INTEGRITY generated files
*.gpj
*.int
*.ael
*.dla
*.dnm
*.dep
*.map
work

550
CMakeLists.txt Normal file
View file

@ -0,0 +1,550 @@
# Editors notes:
#
# * To find all FIXME/TODO related to the CMake build system (and those
# inherited from the autotools build system) execute the following in the
# top-level directory of the source tree:
#
# find -name '*.cmake' -exec grep -E 'TODO|FIXME' {} +
# find -name CMakeLists.txt -exec grep -E 'TODO|FIXME' {} +
project(katie)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
set(CMAKE_AUTOMOC FALSE)
set(CMAKE_AUTORCC FALSE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/staticlib")
include(CheckCXXCompilerFlag)
include(CheckCXXSourceCompiles)
include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckTypeSize)
include(FeatureSummary)
include(KatieMacros)
include(KatieBuildMacros)
# optional package features
option(WITH_OPENSSL "Build openssl support" ON)
add_feature_info(openssl WITH_OPENSSL "an open source something")
option(WITH_ZLIB "Build zlib support" ON)
add_feature_info(zlib WITH_ZLIB "an open source something")
option(WITH_CUPS "Build cups support" ON)
add_feature_info(cups WITH_CUPS "an open source something")
option(WITH_ALSA "Build alsa support" ON)
add_feature_info(alsa WITH_ALSA "an open source something")
option(WITH_PULSEAUDIO "Build pulseaudio support" ON)
add_feature_info(pulseaudio WITH_PULSEAUDIO "an open source something")
option(WITH_PNG "Build png support" ON)
add_feature_info(png WITH_PNG "an open source something")
option(WITH_JPEG "Build jpeg support" ON)
add_feature_info(jpeg WITH_JPEG "an open source something")
option(WITH_TIFF "Build tiff support" ON)
add_feature_info(tiff WITH_TIFF "an open source something")
option(WITH_MNG "Build mng support" ON)
add_feature_info(tiff WITH_MNG "an open source something")
option(WITH_NAS "Build tiff support" ON)
add_feature_info(nas WITH_NAS "an open source something")
option(WITH_ICONV "Build iconv support" ON)
add_feature_info(iconv WITH_ICONV "an open source something")
option(WITH_GLIB2 "Build glib2 support" ON)
add_feature_info(glib2 WITH_GLIB2 "an open source something")
option(WITH_DBUS "Build dbus support" ON)
add_feature_info(dbus WITH_DBUS "an open source something")
option(WITH_GTK2 "Build gtk2 support" ON)
add_feature_info(gtk2 WITH_GTK2 "an open source something")
option(WITH_EGL "Build egl support" OFF)
add_feature_info(egl WITH_EGL "an open source something")
option(WITH_OPENGL "Build opengl support" ON)
add_feature_info(opengl WITH_OPENGL "an open source something")
option(WITH_FONTCONFIG "Build fontconfig support" ON)
add_feature_info(fontconfig WITH_FONTCONFIG "an open source something")
option(WITH_FREETYPE "Build freetype2 support" ON)
add_feature_info(freetype2 WITH_FREETYPE "an open source something")
# TODO: enable when building against external harfbuzz works
option(WITH_HARFBUZZ "Build harfbuzz support" OFF)
add_feature_info(harfbuzz WITH_HARFBUZZ "an open source something")
option(WITH_ODBC "Build ODBC database plugin" ON)
add_feature_info(postgresql WITH_ODBC "an open source something")
option(WITH_PSQL "Build PostgreSQL database plugin" ON)
add_feature_info(postgresql WITH_PSQL "the world's most advanced open source database")
option(WITH_MYSQL "Build MySQL database plugin" ON)
add_feature_info(mysql WITH_MYSQL "the world's most popular open source database")
option(WITH_SQLITE "Build SQLite database plugin" ON)
add_feature_info(sqlite WITH_SQLITE "the world's most popular open source database")
option(WITH_VLC "Build VLC Phonon backend" ON)
add_feature_info(sqlite WITH_VLC "VLC C API Library")
option(WITH_X11 "Build X11/X.Org support" ON)
add_feature_info(x11 WITH_X11 "an open source something")
# katie features
option(WITH_OPENGLES1 "Build opengles1 support" OFF)
add_feature_info(opengles1 WITH_OPENGLES1 "an open source something")
option(WITH_OPENGLES2 "Build opengles2 support" OFF)
add_feature_info(opengles2 WITH_OPENGLES2 "an open source something")
option(WITH_ACCESSIBILITY "Build accessibility support" ON)
add_feature_info(accessibility WITH_ACCESSIBILITY "an open source something")
option(WITH_QTOPIA "Build qtopia support" OFF)
add_feature_info(qtopia WITH_QTOPIA "an open source something")
# windows
# TODO: enable when build system adjusts
option(WITH_ICD "Build icd support (Windows)" OFF)
add_feature_info(icd WITH_ICD "an closed source something")
option(WITH_DIRECTWRITE "Build DirectWrite support (Windows)" OFF)
add_feature_info(directwrite WITH_DIRECTWRITE "an open source something")
# mac
option(WITH_COREWLAN "Build corewlan support (Mac)" ON)
add_feature_info(corewlan WITH_COREWLAN "an closed source something")
include(mkspecs/mkspecs.cmake)
katie_generate_string("qt_lcnsuser=${QT_LICENSE}" "QT_LICENSE_STR" "")
katie_generate_string("qt_lcnsprod=${QT_PRODUCT}" "QT_PRODUCT_STR" "")
katie_generate_string("qt_prfxpath=${QT_PREFIX_PATH}" "QT_PREFIX_PATH_STR" "")
katie_generate_string("qt_hdrspath=${QT_HEADERS_PATH}" "QT_HEADERS_PATH_STR" "QT_HEADERS_PATH_INST")
katie_generate_string("qt_libspath=${QT_LIBRARIES_PATH}" "QT_LIBRARIES_PATH_STR" "QT_LIBRARIES_PATH_INST")
katie_generate_string("qt_binspath=${QT_BINARIES_PATH}" "QT_BINARIES_PATH_STR" "QT_BINARIES_PATH_INST")
katie_generate_string("qt_plugpath=${QT_PLUGINS_PATH}" "QT_PLUGINS_PATH_STR" "QT_PLUGINS_PATH_INST")
katie_generate_string("qt_impspath=${QT_IMPORTS_PATH}" "QT_IMPORTS_PATH_STR" "QT_IMPORTS_PATH_INST")
katie_generate_string("qt_datapath=${QT_DATA_PATH}" "QT_DATA_PATH_STR" "QT_DATA_PATH_INST")
katie_generate_string("qt_trnspath=${QT_TRANSLATIONS_PATH}" "QT_TRANSLATIONS_PATH_STR" "QT_TRANSLATIONS_PATH_INST")
katie_generate_string("qt_stngpath=${QT_SETTINGS_PATH}" "QT_SETTINGS_PATH_STR" "QT_SETTINGS_PATH_INST")
katie_generate_string("qt_docspath=${QT_DOCUMENTATION_PATH}" "QT_DOCUMENTATION_PATH_STR" "QT_DOCUMENTATION_PATH_INST")
katie_generate_string("${QT_EXAMPLES_PATH}" "QT_EXAMPLES_PATH_STR" "QT_EXAMPLES_PATH_INST")
katie_generate_string("${QT_DEMOS_PATH}" "QT_DEMOS_PATH_STR" "QT_DEMOS_PATH_INST")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C++ toolkit derived from the Qt 4.8 framework")
set(CPACK_PACKAGE_VENDOR "Katie")
# set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README")
# set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/Copyright.txt")
set(CPACK_PACKAGE_VERSION_MAJOR ${KATIE_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${KATIE_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${KATIE_MICRO})
set(CPACK_SOURCE_IGNORE_FILES "/build/;/.git;${CPACK_SOURCE_IGNORE_FILES}")
SET(CPACK_GENERATOR "TBZ2;TXZ")
SET(CPACK_SOURCE_GENERATOR "TBZ2;TXZ")
include(CPack)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
add_definitions(
-DKATIE_DATE="${KATIE_DATE}"
# maybe one day, use with caution!
# -DQT_ASCII_CAST_WARNINGS
# -DQT_USE_QSTRINGBUILDER
# -DQT_NO_CAST_FROM_ASCII
# -DQT_NO_CAST_TO_ASCII
)
# this is how Qt4 does it
if(NOT "${KATIE_PLATFORM}" STREQUAL "integrity" AND NOT MINGW)
set(QT_LARGEFILE_SUPPORT TRUE)
add_definitions(
-D_LARGEFILE64_SOURCE
-D_LARGEFILE_SOURCE
)
endif()
configure_file(
${CMAKE_SOURCE_DIR}/src/core/global/qconfig.h.cmake
${CMAKE_BINARY_DIR}/include/QtCore/qconfig.h
)
configure_file(
${CMAKE_SOURCE_DIR}/src/core/global/qconfig.cpp.cmake
${CMAKE_BINARY_DIR}/include/qconfig.cpp
)
configure_file(
${CMAKE_SOURCE_DIR}/src/core/global/qglobal.h
${CMAKE_BINARY_DIR}/include/qtglobal.h
)
find_package(OpenSSL)
set_package_properties(OpenSSL PROPERTIES
PURPOSE "Required for HTTPS support"
DESCRIPTION "Support for secure network communications (SSL and TLS)"
URL "http://openssl.org"
TYPE RECOMMENDED
)
find_package(ZLIB)
set_package_properties(ZLIB PROPERTIES
PURPOSE "Required for compression support"
DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
URL "http://zlib.net"
TYPE RECOMMENDED
)
find_package(PNG)
set_package_properties(PNG PROPERTIES
PURPOSE "PNG format handler"
DESCRIPTION "A collection of routines used to create PNG format graphics files"
URL "http://www.libpng.org/pub/png/libpng.html"
TYPE RECOMMENDED
)
find_package(JPEG)
set_package_properties(JPEG PROPERTIES
PURPOSE "JPEG format handler"
DESCRIPTION "JPEG image codec with accelerated baseline compression and decompression"
URL "http://libjpeg-turbo.virtualgl.org/"
TYPE RECOMMENDED
)
find_package(TIFF)
set_package_properties(TIFF PROPERTIES
PURPOSE "TIFF format handler"
DESCRIPTION "Library for manipulation of TIFF images"
URL "http://www.remotesensing.org/libtiff/"
TYPE RECOMMENDED
)
find_package(MNG)
set_package_properties(MNG PROPERTIES
PURPOSE "MNG format handler"
DESCRIPTION "THE reference library for reading, displaying, writing and examining Multiple-Image Network Graphics"
URL "http://sourceforge.net/projects/libmng/"
TYPE RECOMMENDED
)
find_package(NAS)
set_package_properties(NAS PROPERTIES
PURPOSE "Basic audio support over wire"
DESCRIPTION "Network transparent, client/server audio transport system"
URL "http://www.radscan.com/nas.html"
TYPE RECOMMENDED
)
find_package(Iconv)
set_package_properties(Iconv PROPERTIES
PURPOSE "Iconv support"
DESCRIPTION "iconv() implementation, for use on systems which don't have one or lack Unicode support"
URL "http://www.gnu.org/software/libiconv/"
TYPE RECOMMENDED
)
find_package(Cups)
set_package_properties(Cups PROPERTIES
PURPOSE "Required for printing support"
DESCRIPTION "CUPS is the standards-based, open source printing system"
URL "http://www.cups.org"
TYPE RECOMMENDED
)
find_package(ALSA)
set_package_properties(ALSA PROPERTIES
PURPOSE "Required for ALSA support"
DESCRIPTION "Advanced Linux Sound Architecture"
URL "http://www.alsa-project.org"
TYPE RECOMMENDED
)
find_package(PulseAudio)
set_package_properties(PulseAudio PROPERTIES
PURPOSE "Required for PulseAudio support"
DESCRIPTION "Featureful, general-purpose sound server"
URL "http://www.freedesktop.org/wiki/Software/PulseAudio"
TYPE OPTIONAL
)
find_package(Fontconfig)
set_package_properties(Fontconfig PROPERTIES
PURPOSE "Required for fonts configuration support"
DESCRIPTION "Library for configuring and customizing font access"
URL "http://www.freedesktop.org/wiki/Software/fontconfig"
TYPE RECOMMENDED
)
find_package(Freetype)
set_package_properties(Freetype PROPERTIES
PURPOSE "Required for fonts configuration support"
DESCRIPTION "Freely available software library to render fonts"
URL "http://www.freetype.org"
TYPE RECOMMENDED
)
# currently unused
find_package(HarfBuzz)
set_package_properties(HarfBuzz PROPERTIES
PURPOSE "Currently none"
DESCRIPTION "OpenType text shaping engine"
URL "http://www.freedesktop.org/wiki/Software/HarfBuzz/"
TYPE RECOMMENDED
)
find_package(GLIB2)
set_package_properties(GLIB2 PROPERTIES
PURPOSE "Required for glib mainloop support"
DESCRIPTION "Core application building blocks for libraries and applications written in C"
URL "https://developer.gnome.org/glib"
TYPE RECOMMENDED
)
find_package(DBus)
set_package_properties(DBus PROPERTIES
PURPOSE "Required for D-Bus support"
DESCRIPTION "Message bus system, a simple way for applications to talk to one another"
URL "http://www.freedesktop.org/wiki/Software/dbus"
TYPE RECOMMENDED
)
find_package(GTK2)
set_package_properties(GTK2 PROPERTIES
PURPOSE "Required for GTK style and application integration support"
DESCRIPTION "Multi-platform toolkit for creating graphical user interfaces"
URL "http://www.gtk.org"
TYPE RECOMMENDED
)
find_package(EGL)
set_package_properties(EGL PROPERTIES
PURPOSE "Required for EGL support"
DESCRIPTION "Platform dependendant EGL implementation"
URL ""
TYPE RECOMMENDED
)
find_package(OpenGL)
set_package_properties(OpenGL PROPERTIES
PURPOSE "Required for GL/EGL support"
DESCRIPTION "Platform dependendant OpenGL implementation"
URL ""
TYPE RECOMMENDED
)
find_package(Wayland)
set_package_properties(Wayland PROPERTIES
PURPOSE "Required for Wayland support"
DESCRIPTION "Wayland is intended as a simpler replacement for X"
URL "http://wayland.freedesktop.org/"
TYPE OPTIONAL
)
find_package(ODBC)
set_package_properties(ODBC PROPERTIES
PURPOSE "Required for ODBC database support"
DESCRIPTION "The definitive standard for ODBC on non MS Windows platforms"
URL "http://www.unixodbc.org"
TYPE RECOMMENDED
)
find_package(PostgreSQL)
set_package_properties(PostgreSQL PROPERTIES
PURPOSE "Required for PostgreSQL database support"
DESCRIPTION "The world's most advanced open source database"
URL "http://www.postgresql.org"
TYPE OPTIONAL
)
find_package(MySQL)
set_package_properties(MySQL PROPERTIES
PURPOSE "Required for MySQL database support"
DESCRIPTION "The world's most popular open source database"
URL "http://www.mysql.com"
TYPE OPTIONAL
)
set(SQLITE_MIN_VERSION "3")
find_package(Sqlite)
set_package_properties(Sqlite PROPERTIES
PURPOSE "Required for SQLite database support"
DESCRIPTION "Software library that implements SQL database engine"
URL "https://www.sqlite.org/"
TYPE RECOMMENDED
)
set(LIBVLC_MIN_VERSION "2.1.0")
find_package(LIBVLC)
set_package_properties(LIBVLC PROPERTIES
PURPOSE "Required for VLC Phonon backend"
DESCRIPTION "VLC C API Library"
URL "http://www.videolan.org/vlc/"
TYPE RECOMMENDED
)
# module for Qt Platform Abstraction
# find_package(QPA)
if(UNIX AND NOT ${KATIE_PLATFORM} STREQUAL "mac")
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads REQUIRED)
find_package(X11 COMPONENTS ICE SM Xcursor Xext Xfixes Xi Xinerama Xrandr Xrender X11 Xtst)
set_package_properties(X11 PROPERTIES
PURPOSE "Required for X11/X.Org integration support"
DESCRIPTION "Open source implementation of the X Window System"
URL "http://www.x.org"
TYPE RECOMMENDED
)
set_package_properties(Fontconfig PROPERTIES
TYPE REQUIRED
)
set_package_properties(Freetype PROPERTIES
TYPE REQUIRED
)
set_package_properties(X11 PROPERTIES
TYPE REQUIRED
)
endif()
# so that sources can say: #include <shared/blah.h>
include_directories(${CMAKE_SOURCE_DIR}/src)
# semi-shared
include(src/shared/deviceskin/deviceskin.cmake)
include(src/shared/help/help.cmake)
include(src/shared/linguist/linguist.cmake)
include(src/shared/qtgradienteditor/qtgradienteditor.cmake)
include(src/shared/qtpropertybrowser/qtpropertybrowser.cmake)
include(src/shared/findwidget/findwidget.cmake)
include(src/shared/bootstrap.cmake)
if(ENABLE_TESTING)
message(WARNING "Unless it is intentionally you should not enable testing")
enable_testing()
add_definitions(-DQT_BUILD_INTERNAL)
endif()
if(NOT WTIH_EGL OR NOT EGL_FOUND)
katie_definition(-DQT_NO_EGL)
endif()
# major components
add_subdirectory(src/core)
if(WITH_DBUS AND DBUS_FOUND)
add_subdirectory(src/dbus)
else()
katie_definition(-DQT_NO_DBUS)
endif()
add_subdirectory(src/declarative)
add_subdirectory(src/designer)
add_subdirectory(src/gui)
add_subdirectory(src/help)
add_subdirectory(src/imports)
add_subdirectory(src/multimedia)
add_subdirectory(src/network)
if(WITH_OPENGL AND OPENGL_FOUND)
add_subdirectory(src/opengl)
else()
katie_definition(-DQT_NO_OPENGL)
endif()
add_subdirectory(src/phonon)
add_subdirectory(src/plugins)
add_subdirectory(src/script)
add_subdirectory(src/scripttools)
add_subdirectory(src/sql)
add_subdirectory(src/svg)
add_subdirectory(src/test)
add_subdirectory(src/uitools)
if(KATIE_PLATFORM MATCHES "(win32|wince)")
add_subdirectory(src/winmain)
endif()
add_subdirectory(src/xml)
add_subdirectory(src/xmlpatterns)
add_subdirectory(src/tools)
if(ENABLE_TESTING)
add_subdirectory(tests)
endif()
# obsolete but still widely required headers
katie_generate_obsolete(qtglobal.h QtCore qglobal.h)
katie_generate_obsolete(qwizardpage.h QtGui qwizard.h)
katie_generate_obsolete(qtimeedit.h QtGui qdatetimeedit.h)
katie_generate_obsolete(qdateedit.h QtGui qdatetimeedit.h)
katie_generate_obsolete(global.h Phonon ../phonon/phononnamespace.h)
# those are aliases
katie_generate_obsolete(qx11info.h QtGui qx11info_x11.h)
katie_generate_obsolete(qx11embedcontainer QtGui qx11embed_x11.h)
katie_generate_obsolete(qx11embedwidget.h QtGui qx11embed_x11.h)
# those have shuffled, e.g. from QtDesginer to QtUiTools
katie_generate_obsolete(customwidget.h QtDesginer ../QtUiTools/customwidget.h)
# TODO: deal with those and many more
# QMacStyle
# QAbstractFontEngine
# translations
file(GLOB TRANSLATIONS "translations/*.ts")
katie_translations(${TRANSLATIONS})
katie_fixup_string("${KATIE_DEFINITIONS}" KATIE_DEFINITIONS)
configure_file(
${CMAKE_SOURCE_DIR}/cmake/KatieConfig.cmake
${CMAKE_BINARY_DIR}/KatieConfig.cmake
@ONLY
)
configure_file(
${CMAKE_SOURCE_DIR}/cmake/KatieConfigVersion.cmake
${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake
@ONLY
)
install(
DIRECTORY mkspecs
DESTINATION ${QT_DATA_PATH_INST}/cmake/Katie
COMPONENT Devel
)
install(
FILES
${CMAKE_BINARY_DIR}/KatieConfig.cmake
${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake
${CMAKE_SOURCE_DIR}/cmake/modules/KatieMacros.cmake
DESTINATION
${QT_DATA_PATH_INST}/cmake/Katie
COMPONENT Devel
)
install(
EXPORT KatieLibraryTargets
NAMESPACE Katie::
DESTINATION ${QT_DATA_PATH_INST}/cmake/Katie
FILE KatieLibraryTargets.cmake
)
install(
EXPORT KatieBinaryTargets
NAMESPACE Katie::
DESTINATION ${QT_DATA_PATH_INST}/cmake/Katie
FILE KatieBinaryTargets.cmake
)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

13
INSTALL Normal file
View file

@ -0,0 +1,13 @@
INSTALLING Qt Source Package Version %VERSION%.
For full installation instructions for each supported platform, please
see http://qt-project.org/doc/qt-%SHORTVERSION%/installation.html, the file
doc/html/installation.html in this package, or follow one of the following
links:
Embedded Linux: http://qt-project.org/doc/qt-%SHORTVERSION%/qt-embedded-install.html
Mac OS X: http://qt-project.org/doc/qt-%SHORTVERSION%/install-mac.html
Windows: http://qt-project.org/doc/qt-%SHORTVERSION%/install-win.html
Windows CE: http://qt-project.org/doc/qt-%SHORTVERSION%/install-wince.html
X11 Platforms: http://qt-project.org/doc/qt-%SHORTVERSION%/install-x11.html

22
LGPL_EXCEPTION.txt Normal file
View file

@ -0,0 +1,22 @@
The Qt Company Qt LGPL Exception version 1.1
As an additional permission to the GNU Lesser General Public License version
2.1, the object code form of a "work that uses the Library" may incorporate
material from a header file that is part of the Library. You may distribute
such object code under terms of your choice, provided that:
(i) the header files of the Library have not been modified; and
(ii) the incorporated material is limited to numerical parameters, data
structure layouts, accessors, macros, inline functions and
templates; and
(iii) you comply with the terms of Section 6 of the GNU Lesser General
Public License version 2.1.
Moreover, you may apply this exception to a modified version of the Library,
provided that such modification does not involve copying material from the
Library into the modified Library's header files unless such material is
limited to (i) numerical parameters; (ii) data structure layouts;
(iii) accessors; and (iv) small macros, templates and inline functions of
five lines or less in length.
Furthermore, you are not required to apply this additional permission to a
modified version of the Library.

450
LICENSE.FDL Normal file
View file

@ -0,0 +1,450 @@
GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by
proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the
machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
The "publisher" means any person or entity that distributes copies of
the Document to the public.
A section "Entitled XYZ" means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as "Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
of such a section when you modify the Document means that it remains a
section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no
other conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to
give them a chance to provide you with an updated version of the
Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History"
in the various original documents, forming one section Entitled
"History"; likewise combine any sections Entitled "Acknowledgements",
and any sections Entitled "Dedications". You must delete all sections
Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the rules
of this License for verbatim copying of each of the documents in all
other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert a
copy of this License into the extracted document, and follow this
License in all other respects regarding verbatim copying of that
document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an "aggregate" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements",
"Dedications", or "History", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the
GNU Free Documentation License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns. See
http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy's public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
means any set of copyrightable works thus published on the MMC site.
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
"Incorporate" means to publish or republish a Document, in whole or in
part, as part of another Document.
An MMC is "eligible for relicensing" if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this MMC, and subsequently incorporated in whole or
in part into the MMC, (1) had no cover texts or invariant sections, and
(2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.

514
LICENSE.LGPL Normal file
View file

@ -0,0 +1,514 @@
GNU LESSER GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
GNU Lesser General Public License version 2.1, which is displayed below.
-------------------------------------------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

514
LICENSE.LGPLv21 Normal file
View file

@ -0,0 +1,514 @@
GNU LESSER GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
GNU Lesser General Public License version 2.1, which is displayed below.
-------------------------------------------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

173
LICENSE.LGPLv3 Normal file
View file

@ -0,0 +1,173 @@
GNU LESSER GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
GNU Lesser General Public License version 3, which is displayed below.
-------------------------------------------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this
licensedocument, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, “this License” refers to version 3 of the GNU Lesser
General Public License, and the “GNU GPL” refers to version 3 of the
GNU General Public License.
“The Library” refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An “Application” is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A “Combined Work” is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the “Linked
Version”.
The “Minimal Corresponding Source” for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The “Corresponding Application Code” for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort
to ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this
license document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that, taken
together, effectively do not restrict modification of the portions of
the Library contained in the Combined Work and reverse engineering for
debugging such modifications, if you also do each of the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this
license document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of
this License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with
the Library. A suitable mechanism is one that (a) uses at run
time a copy of the Library already present on the user's
computer system, and (b) will operate properly with a modified
version of the Library that is interface-compatible with the
Linked Version.
e) Provide Installation Information, but only if you would
otherwise be required to provide such information under section 6
of the GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the Application
with a modified version of the Linked Version. (If you use option
4d0, the Installation Information must accompany the Minimal
Corresponding Source and Corresponding Application Code. If you
use option 4d1, you must provide the Installation Information in
the manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the Library
side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities, conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of
it is a work based on the Library, and explaining where to find
the accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
as you received it specifies that a certain numbered version of the
GNU Lesser General Public License “or any later version” applies to
it, you have the option of following the terms and conditions either
of that published version or of any later version published by the
Free Software Foundation. If the Library as you received it does not
specify a version number of the GNU Lesser General Public License,
you may choose any version of the GNU Lesser General Public License
ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the Library.

630
LICENSE.PREVIEW.COMMERCIAL Normal file
View file

@ -0,0 +1,630 @@
TECHNOLOGY PREVIEW LICENSE AGREEMENT
For individuals and/or legal entities resident in the Americas (North
America, Central America and South America), the applicable licensing
terms are specified under the heading "Technology Preview License
Agreement: The Americas".
For individuals and/or legal entities not resident in The Americas, the
applicable licensing terms are specified under the heading "Technology
Preview License Agreement: Rest of the World".
TECHNOLOGY PREVIEW LICENSE AGREEMENT: The Americas
Agreement version 2.4
This Technology Preview License Agreement ("Agreement")is a legal agreement
between The Qt Company USA, Inc. ("The Qt Company"), with its registered
office at 2350 Mission College Blvd., Suite 1020, Santa Clara, California
95054, U.S.A. and you (either an individual or a legal entity) ("Licensee")
for the Licensed Software (as defined below).
1. DEFINITIONS
"Affiliate" of a Party shall mean an entity (i) which is directly or
indirectly controlling such Party; (ii) which is under the same direct
or indirect ownership or control as such Party; or (iii) which is
directly or indirectly owned or controlled by such Party. For these
purposes, an entity shall be treated as being controlled by another if
that other entity has fifty percent (50 %) or more of the votes in such
entity, is able to direct its affairs and/or to control the composition
of its board of directors or equivalent body.
"Applications" shall mean Licensee's software products created using the
Licensed Software which may include portions of the Licensed Software.
"Term" shall mean the period of time six (6) months from the later of
(a) the Effective Date; or (b) the date the Licensed Software was
initially delivered to Licensee by The Qt Company. If no specific Effective
Date is set forth in the Agreement, the Effective Date shall be deemed to be
the date the Licensed Software was initially delivered to Licensee.
"Licensed Software" shall mean the computer software, "online" or
electronic documentation, associated media and printed materials,
including the source code, example programs and the documentation
delivered by The Qt Company to Licensee in conjunction with this Agreement.
"Party" or "Parties" shall mean Licensee and/or The Qt Company.
2. OWNERSHIP
The Licensed Software is protected by copyright laws and international
copyright treaties, as well as other intellectual property laws and
treaties. The Licensed Software is licensed, not sold.
If Licensee provides any findings, proposals, suggestions or other
feedback ("Feedback") to The Qt Company regarding the Licensed Software,
The Qt Company shall own all right, title and interest including the
intellectual property rights in and to such Feedback, excluding however any
existing patent rights of Licensee. To the extent Licensee owns or controls
any patents for such Feedback Licensee hereby grants to The Qt Company and its
Affiliates, a worldwide, perpetual, non-transferable, sublicensable,
royalty-free license to (i) use, copy and modify Feedback and to create
derivative works thereof, (ii) to make (and have made), use, import,
sell, offer for sale, lease, dispose, offer for disposal or otherwise
exploit any products or services of The Qt Company containing Feedback, and
(iii) sublicense all the foregoing rights to third party licensees and
customers of The Qt Company and/or its Affiliates.
3. VALIDITY OF THE AGREEMENT
By installing, copying, or otherwise using the Licensed Software,
Licensee agrees to be bound by the terms of this Agreement. If Licensee
does not agree to the terms of this Agreement, Licensee may not install,
copy, or otherwise use the Licensed Software. Upon Licensee's acceptance
of the terms and conditions of this Agreement, The Qt Company grants Licensee
the right to use the Licensed Software in the manner provided below.
4. LICENSES
4.1. Using and Copying
The Qt Company grants to Licensee a non-exclusive, non-transferable,
time-limited license to use and copy the Licensed Software for sole purpose
of designing, developing and testing Applications, and evaluating and the
Licensed Software during the Term.
Licensee may install copies of the Licensed Software on an unlimited
number of computers provided that (a) if an individual, only such
individual; or (b) if a legal entity only its employees; use the
Licensed Software for the authorized purposes.
4.2 No Distribution or Modifications
Licensee may not disclose, modify, sell, market, commercialise,
distribute, loan, rent, lease, or license the Licensed Software or any
copy of it or use the Licensed Software for any purpose that is not
expressly granted in this Section 4. Licensee may not alter or remove
any details of ownership, copyright, trademark or other property right
connected with the Licensed Software. Licensee may not distribute any
software statically or dynamically linked with the Licensed Software.
4.3 No Technical Support
The Qt Company has no obligation to furnish Licensee with any technical
support whatsoever. Any such support is subject to separate agreement between
the Parties.
5. PRE-RELEASE CODE
The Licensed Software contains pre-release code that is not at the level
of performance and compatibility of a final, generally available,
product offering. The Licensed Software may not operate correctly and
may be substantially modified prior to the first commercial product
release, if any. The Qt Company is not obligated to make this or any later
version of the Licensed Software commercially available. The License
Software is "Not for Commercial Use" and may only be used for the
purposes described in Section 4. The Licensed Software may not be used
in a live operating environment where it may be relied upon to perform
in the same manner as a commercially released product or with data that
has not been sufficiently backed up.
6. THIRD PARTY SOFTWARE
The Licensed Software may provide links to third party libraries or code
(collectively "Third Party Software") to implement various functions.
Third Party Software does not comprise part of the Licensed Software. In
some cases, access to Third Party Software may be included along with
the Licensed Software delivery as a convenience for development and
testing only. Such source code and libraries may be listed in the
".../src/3rdparty" source tree delivered with the Licensed Software or
documented in the Licensed Software where the Third Party Software is
used, as may be amended from time to time, do not comprise the Licensed
Software. Licensee acknowledges (1) that some part of Third Party
Software may require additional licensing of copyright and patents from
the owners of such, and (2) that distribution of any of the Licensed
Software referencing any portion of a Third Party Software may require
appropriate licensing from such third parties.
7. LIMITED WARRANTY AND WARRANTY DISCLAIMER
The Licensed Software is licensed to Licensee "as is". To the maximum
extent permitted by applicable law, The Qt Company on behalf of itself and
its suppliers, disclaims all warranties and conditions, either express or
implied, including, but not limited to, implied warranties of
merchantability, fitness for a particular purpose, title and
non-infringement with regard to the Licensed Software.
8. LIMITATION OF LIABILITY
If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is
held liable to Licensee, whether in contract, tort or any other legal theory,
based on the Licensed Software, The Qt Company's entire liability to Licensee
and Licensee's exclusive remedy shall be, at The Qt Company's option, either
(A) return of the price Licensee paid for the Licensed Software, or (B)
repair or replacement of the Licensed Software, provided Licensee
returns to The Qt Company all copies of the Licensed Software as originally
delivered to Licensee. The Qt Company shall not under any circumstances be
liable to Licensee based on failure of the Licensed Software if the failure
resulted from accident, abuse or misapplication, nor shall The Qt Company
under any circumstances be liable for special damages, punitive or exemplary
damages, damages for loss of profits or interruption of business or for
loss or corruption of data. Any award of damages from The Qt Company to
Licensee shall not exceed the total amount Licensee has paid to The Qt
Company in connection with this Agreement.
9. CONFIDENTIALITY
Each party acknowledges that during the Term of this Agreement it shall
have access to information about the other party's business, business
methods, business plans, customers, business relations, technology, and
other information, including the terms of this Agreement, that is
confidential and of great value to the other party, and the value of
which would be significantly reduced if disclosed to third parties (the
"Confidential Information"). Accordingly, when a party (the "Receiving
Party") receives Confidential Information from another party (the
"Disclosing Party"), the Receiving Party shall, and shall obligate its
employees and agents and employees and agents of its Affiliates to: (i)
maintain the Confidential Information in strict confidence; (ii) not
disclose the Confidential Information to a third party without the
Disclosing Party's prior written approval; and (iii) not, directly or
indirectly, use the Confidential Information for any purpose other than
for exercising its rights and fulfilling its responsibilities pursuant
to this Agreement. Each party shall take reasonable measures to protect
the Confidential Information of the other party, which measures shall
not be less than the measures taken by such party to protect its own
confidential and proprietary information.
"Confidential Information" shall not include information that (a) is or
becomes generally known to the public through no act or omission of the
Receiving Party; (b) was in the Receiving Party's lawful possession
prior to the disclosure hereunder and was not subject to limitations on
disclosure or use; (c) is developed by the Receiving Party without
access to the Confidential Information of the Disclosing Party or by
persons who have not had access to the Confidential Information of the
Disclosing Party as proven by the written records of the Receiving
Party; (d) is lawfully disclosed to the Receiving Party without
restrictions, by a third party not under an obligation of
confidentiality; or (e) the Receiving Party is legally compelled to
disclose the information, in which case the Receiving Party shall assert
the privileged and confidential nature of the information and cooperate
fully with the Disclosing Party to protect against and prevent
disclosure of any Confidential Information and to limit the scope of
disclosure and the dissemination of disclosed Confidential Information
by all legally available means.
The obligations of the Receiving Party under this Section shall continue
during the Initial Term and for a period of five (5) years after
expiration or termination of this Agreement. To the extent that the
terms of the Non-Disclosure Agreement between The Qt Company and Licensee
conflict with the terms of this Section 9, this Section 9 shall be
controlling over the terms of the Non-Disclosure Agreement.
10. GENERAL PROVISIONS
10.1 No Assignment
Licensee shall not be entitled to assign or transfer all or any of its
rights, benefits and obligations under this Agreement without the prior
written consent of The Qt Company, which shall not be unreasonably withheld.
10.2 Termination
The Qt Company may terminate the Agreement at any time immediately upon
written notice by The Qt Company to Licensee if Licensee breaches this
Agreement.
Upon termination of this Agreement, Licensee shall return to The Qt Company
all copies of Licensed Software that were supplied by The Qt Company. All
other copies of Licensed Software in the possession or control of Licensee
must be erased or destroyed. An officer of Licensee must promptly
deliver to The Qt Company a written confirmation that this has occurred.
10.3 Surviving Sections
Any terms and conditions that by their nature or otherwise reasonably
should survive a cancellation or termination of this Agreement shall
also be deemed to survive. Such terms and conditions include, but are
not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4,
10.5, 10.6, 10.7, and 10.8 of this Agreement.
10.4 Entire Agreement
This Agreement constitutes the complete agreement between the parties
and supersedes all prior or contemporaneous discussions,
representations, and proposals, written or oral, with respect to the
subject matters discussed herein, with the exception of the
non-disclosure agreement executed by the parties in connection with this
Agreement ("Non-Disclosure Agreement"), if any, shall be subject to
Section 9. No modification of this Agreement shall be effective unless
contained in a writing executed by an authorized representative of each
party. No term or condition contained in Licensee's purchase order shall
apply unless expressly accepted by The Qt Company in writing. If any
provision of the Agreement is found void or unenforceable, the remainder
shall remain valid and enforceable according to its terms. If any remedy
provided is determined to have failed for its essential purpose, all
limitations of liability and exclusions of damages set forth in this
Agreement shall remain in effect.
10.5 Export Control
Licensee acknowledges that the Licensed Software may be subject to
export control restrictions of various countries. Licensee shall fully
comply with all applicable export license restrictions and requirements
as well as with all laws and regulations relating to the importation of
the Licensed Software and shall procure all necessary governmental
authorizations, including without limitation, all necessary licenses,
approvals, permissions or consents, where necessary for the
re-exportation of the Licensed Software.,
10.6 Governing Law and Legal Venue
This Agreement shall be governed by and construed in accordance with the
federal laws of the United States of America and the internal laws of
the State of New York without given effect to any choice of law rule
that would result in the application of the laws of any other
jurisdiction. The United Nations Convention on Contracts for the
International Sale of Goods (CISG) shall not apply. Each Party (a)
hereby irrevocably submits itself to and consents to the jurisdiction of
the United States District Court for the Southern District of New York
(or if such court lacks jurisdiction, the state courts of the State of
New York) for the purposes of any action, claim, suit or proceeding
between the Parties in connection with any controversy, claim, or
dispute arising out of or relating to this Agreement; and (b) hereby
waives, and agrees not to assert by way of motion, as a defense or
otherwise, in any such action, claim, suit or proceeding, any claim that
is not personally subject to the jurisdiction of such court(s), that the
action, claim, suit or proceeding is brought in an inconvenient forum or
that the venue of the action, claim, suit or proceeding is improper.
Notwithstanding the foregoing, nothing in this Section 9.6 is intended
to, or shall be deemed to, constitute a submission or consent to, or
selection of, jurisdiction, forum or venue for any action for patent
infringement, whether or not such action relates to this Agreement.
10.7 No Implied License
There are no implied licenses or other implied rights granted under this
Agreement, and all rights, save for those expressly granted hereunder,
shall remain with The Qt Company and its licensors. In addition, no licenses
or immunities are granted to the combination of the Licensed Software with
any other software or hardware not delivered by The Qt Company under this
Agreement.
10.8 Government End Users
A "U.S. Government End User" shall mean any agency or entity of the
government of the United States. The following shall apply if Licensee
is a U.S. Government End User. The Licensed Software is a "commercial
item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
consisting of "commercial computer software" and "commercial computer
software documentation," as such terms are used in 48 C.F.R. 12.212
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
through 227.7202-4 (June 1995), all U.S. Government End Users acquire
the Licensed Software with only those rights set forth herein. The
Licensed Software (including related documentation) is provided to U.S.
Government End Users: (a) only as a commercial end item; and (b) only
pursuant to this Agreement.
TECHNOLOGY PREVIEW LICENSE AGREEMENT: Rest of the World
Agreement version 2.4
This Technology Preview License Agreement ("Agreement") is a legal
agreement between The Qt Company Ltd ("The Qt Company"), with its registered
office at Valimotie 21,FI-00380 Helsinki, Finland and you (either an
individual or a legal entity) ("Licensee") for the Licensed Software.
1. DEFINITIONS
"Affiliate" of a Party shall mean an entity (i) which is directly or
indirectly controlling such Party; (ii) which is under the same direct
or indirect ownership or control as such Party; or (iii) which is
directly or indirectly owned or controlled by such Party. For these
purposes, an entity shall be treated as being controlled by another if
that other entity has fifty percent (50 %) or more of the votes in such
entity, is able to direct its affairs and/or to control the composition
of its board of directors or equivalent body.
"Applications" shall mean Licensee's software products created using the
Licensed Software which may include portions of the Licensed Software.
"Term" shall mean the period of time six (6) months from the later of
(a) the Effective Date; or (b) the date the Licensed Software was
initially delivered to Licensee by The Qt Company. If no specific Effective
Date is set forth in the Agreement, the Effective Date shall be deemed to be
the date the Licensed Software was initially delivered to Licensee.
"Licensed Software" shall mean the computer software, "online" or
electronic documentation, associated media and printed materials,
including the source code, example programs and the documentation
delivered by The Qt Company to Licensee in conjunction with this Agreement.
"Party" or "Parties" shall mean Licensee and/or The Qt Company.
2. OWNERSHIP
The Licensed Software is protected by copyright laws and international
copyright treaties, as well as other intellectual property laws and
treaties. The Licensed Software is licensed, not sold.
If Licensee provides any findings, proposals, suggestions or other
feedback ("Feedback") to The Qt Company regarding the Licensed Software,
The Qt Companyshall own all right, title and interest including the
intellectual property rights in and to such Feedback, excluding however any
existing patent rights of Licensee. To the extent Licensee owns or controls
any patents for such Feedback Licensee hereby grants to The Qt Company and
its Affiliates, a worldwide, perpetual, non-transferable, sublicensable,
royalty-free license to (i) use, copy and modify Feedback and to create
derivative works thereof, (ii) to make (and have made), use, import,
sell, offer for sale, lease, dispose, offer for disposal or otherwise
exploit any products or services of The Qt Company containing Feedback, and
(iii) sublicense all the foregoing rights to third party licensees and
customers of The Qt Company and/or its Affiliates.
3. VALIDITY OF THE AGREEMENT
By installing, copying, or otherwise using the Licensed Software,
Licensee agrees to be bound by the terms of this Agreement. If Licensee
does not agree to the terms of this Agreement, Licensee may not install,
copy, or otherwise use the Licensed Software. Upon Licensee's acceptance
of the terms and conditions of this Agreement, The Qt Company grants Licensee
the right to use the Licensed Software in the manner provided below.
4. LICENSES
4.1. Using and Copying
The Qt Company grants to Licensee a non-exclusive, non-transferable,
time-limited license to use and copy the Licensed Software for sole purpose
of designing, developing and testing Applications, and evaluating and the
Licensed Software during the Term.
Licensee may install copies of the Licensed Software on an unlimited
number of computers provided that (a) if an individual, only such
individual; or (b) if a legal entity only its employees; use the
Licensed Software for the authorized purposes.
4.2 No Distribution or Modifications
Licensee may not disclose, modify, sell, market, commercialise,
distribute, loan, rent, lease, or license the Licensed Software or any
copy of it or use the Licensed Software for any purpose that is not
expressly granted in this Section 4. Licensee may not alter or remove
any details of ownership, copyright, trademark or other property right
connected with the Licensed Software. Licensee may not distribute any
software statically or dynamically linked with the Licensed Software.
4.3 No Technical Support
The Qt Company has no obligation to furnish Licensee with any technical
support whatsoever. Any such support is subject to separate agreement
between the Parties.
5. PRE-RELEASE CODE
The Licensed Software contains pre-release code that is not at the level
of performance and compatibility of a final, generally available,
product offering. The Licensed Software may not operate correctly and
may be substantially modified prior to the first commercial product
release, if any. The Qt Company is not obligated to make this or any later
version of the Licensed Software commercially available. The License
Software is "Not for Commercial Use" and may only be used for the
purposes described in Section 4. The Licensed Software may not be used
in a live operating environment where it may be relied upon to perform
in the same manner as a commercially released product or with data that
has not been sufficiently backed up.
6. THIRD PARTY SOFTWARE
The Licensed Software may provide links to third party libraries or code
(collectively "Third Party Software") to implement various functions.
Third Party Software does not comprise part of the Licensed Software. In
some cases, access to Third Party Software may be included along with
the Licensed Software delivery as a convenience for development and
testing only. Such source code and libraries may be listed in the
".../src/3rdparty" source tree delivered with the Licensed Software or
documented in the Licensed Software where the Third Party Software is
used, as may be amended from time to time, do not comprise the Licensed
Software. Licensee acknowledges (1) that some part of Third Party
Software may require additional licensing of copyright and patents from
the owners of such, and (2) that distribution of any of the Licensed
Software referencing any portion of a Third Party Software may require
appropriate licensing from such third parties.
7. LIMITED WARRANTY AND WARRANTY DISCLAIMER
The Licensed Software is licensed to Licensee "as is". To the maximum
extent permitted by applicable law, The Qt Company on behalf of itself and
its suppliers, disclaims all warranties and conditions, either express or
implied, including, but not limited to, implied warranties of
merchantability, fitness for a particular purpose, title and
non-infringement with regard to the Licensed Software.
8. LIMITATION OF LIABILITY
If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is
held liable to Licensee, whether in contract, tort or any other legal theory,
based on the Licensed Software, The Qt Company's entire liability to Licensee
and Licensee's exclusive remedy shall be, at The Qt Company's option, either
(A) return of the price Licensee paid for the Licensed Software, or (B)
repair or replacement of the Licensed Software, provided Licensee
returns to The Qt Company all copies of the Licensed Software as originally
delivered to Licensee. The Qt Company shall not under any circumstances be
liable to Licensee based on failure of the Licensed Software if the failure
resulted from accident, abuse or misapplication, nor shall The Qt Company
under any circumstances be liable for special damages, punitive or exemplary
damages, damages for loss of profits or interruption of business or for
loss or corruption of data. Any award of damages from The Qt Company to
Licensee shall not exceed the total amount Licensee has paid to
The Qt Company in connection with this Agreement.
9. CONFIDENTIALITY
Each party acknowledges that during the Term of this Agreement it shall
have access to information about the other party's business, business
methods, business plans, customers, business relations, technology, and
other information, including the terms of this Agreement, that is
confidential and of great value to the other party, and the value of
which would be significantly reduced if disclosed to third parties (the
"Confidential Information"). Accordingly, when a party (the "Receiving
Party") receives Confidential Information from another party (the
"Disclosing Party"), the Receiving Party shall, and shall obligate its
employees and agents and employees and agents of its Affiliates to: (i)
maintain the Confidential Information in strict confidence; (ii) not
disclose the Confidential Information to a third party without the
Disclosing Party's prior written approval; and (iii) not, directly or
indirectly, use the Confidential Information for any purpose other than
for exercising its rights and fulfilling its responsibilities pursuant
to this Agreement. Each party shall take reasonable measures to protect
the Confidential Information of the other party, which measures shall
not be less than the measures taken by such party to protect its own
confidential and proprietary information.
"Confidential Information" shall not include information that (a) is or
becomes generally known to the public through no act or omission of the
Receiving Party; (b) was in the Receiving Party's lawful possession
prior to the disclosure hereunder and was not subject to limitations on
disclosure or use; (c) is developed by the Receiving Party without
access to the Confidential Information of the Disclosing Party or by
persons who have not had access to the Confidential Information of the
Disclosing Party as proven by the written records of the Receiving
Party; (d) is lawfully disclosed to the Receiving Party without
restrictions, by a third party not under an obligation of
confidentiality; or (e) the Receiving Party is legally compelled to
disclose the information, in which case the Receiving Party shall assert
the privileged and confidential nature of the information and cooperate
fully with the Disclosing Party to protect against and prevent
disclosure of any Confidential Information and to limit the scope of
disclosure and the dissemination of disclosed Confidential Information
by all legally available means.
The obligations of the Receiving Party under this Section shall continue
during the Initial Term and for a period of five (5) years after
expiration or termination of this Agreement. To the extent that the
terms of the Non-Disclosure Agreement between The Qt Company and Licensee
conflict with the terms of this Section 9, this Section 9 shall be
controlling over the terms of the Non-Disclosure Agreement.
10. GENERAL PROVISIONS
10.1 No Assignment
Licensee shall not be entitled to assign or transfer all or any of its
rights, benefits and obligations under this Agreement without the prior
written consent of The Qt Company, which shall not be unreasonably withheld.
10.2 Termination
The Qt Company may terminate the Agreement at any time immediately upon
written notice by The Qt Company to Licensee if Licensee breaches this
Agreement.
Upon termination of this Agreement, Licensee shall return to The Qt Company
all copies of Licensed Software that were supplied by The Qt Company. All
other copies of Licensed Software in the possession or control of Licensee
must be erased or destroyed. An officer of Licensee must promptly
deliver to The Qt Company a written confirmation that this has occurred.
10.3 Surviving Sections
Any terms and conditions that by their nature or otherwise reasonably
should survive a cancellation or termination of this Agreement shall
also be deemed to survive. Such terms and conditions include, but are
not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4,
10.5, 10.6, 10.7, and 10.8 of this Agreement.
10.4 Entire Agreement
This Agreement constitutes the complete agreement between the parties
and supersedes all prior or contemporaneous discussions,
representations, and proposals, written or oral, with respect to the
subject matters discussed herein, with the exception of the
non-disclosure agreement executed by the parties in connection with this
Agreement ("Non-Disclosure Agreement"), if any, shall be subject to
Section 9. No modification of this Agreement shall be effective unless
contained in a writing executed by an authorized representative of each
party. No term or condition contained in Licensee's purchase order shall
apply unless expressly accepted by The Qt Company in writing. If any provision
of the Agreement is found void or unenforceable, the remainder shall remain
valid and enforceable according to its terms. If any remedy provided is
determined to have failed for its essential purpose, all limitations of
liability and exclusions of damages set forth in this Agreement shall
remain in effect.
10.5 Export Control
Licensee acknowledges that the Licensed Software may be subject to
export control restrictions of various countries. Licensee shall fully
comply with all applicable export license restrictions and requirements
as well as with all laws and regulations relating to the importation of
the Licensed Software and shall procure all necessary governmental
authorizations, including without limitation, all necessary licenses,
approvals, permissions or consents, where necessary for the
re-exportation of the Licensed Software.,
10.6 Governing Law and Legal Venue
This Agreement shall be construed and interpreted in accordance with the
laws of Finland, excluding its choice of law provisions. Any disputes
arising out of or relating to this Agreement shall be resolved in
arbitration under the Rules of Arbitration of the Chamber of Commerce of
Helsinki, Finland. The arbitration tribunal shall consist of one (1), or
if either Party so requires, of three (3), arbitrators. The award shall
be final and binding and enforceable in any court of competent
jurisdiction. The arbitration shall be held in Helsinki, Finland and the
process shall be conducted in the English language.
10.7 No Implied License
There are no implied licenses or other implied rights granted under this
Agreement, and all rights, save for those expressly granted hereunder,
shall remain with The Qt Company and its licensors. In addition, no licenses
or immunities are granted to the combination of the Licensed Software with
any other software or hardware not delivered by The Qt Company under this
Agreement.
10.8 Government End Users
A "U.S. Government End User" shall mean any agency or entity of the
government of the United States. The following shall apply if Licensee
is a U.S. Government End User. The Licensed Software is a "commercial
item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
consisting of "commercial computer software" and "commercial computer
software documentation," as such terms are used in 48 C.F.R. 12.212
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
through 227.7202-4 (June 1995), all U.S. Government End Users acquire
the Licensed Software with only those rights set forth herein. The
Licensed Software (including related documentation) is provided to U.S.
Government End Users: (a) only as a commercial end item; and (b) only
pursuant to this Agreement.

5
TODO Normal file
View file

@ -0,0 +1,5 @@
finish plugins porting to cmake
deal with obsolete headers, besides those mentioned in the CMake files
use system harfbuzz and clucene (optionally) and unbundle
make use of qstandarddirs and qcommandlineparser trought the codebase, e.g. moc
move phonon sources to 3rdparty, still, generate docs for it

148
cmake/KatieConfig.cmake Normal file
View file

@ -0,0 +1,148 @@
# - Config file for the Katie package
#
# It defines the following variables:
#
# KATIE_DEFINITIONS - all preprocessor definitions
# KATIE_INCLUDES - all headers directories
# KATIE_LIBRARIES - all component libraries
# KATIE_<COMPONENT>_INCLUDES - component headers directories for e.g. QtCore
# KATIE_<COMPONENT>_LIBRARIES - component libraries to link against e.g. QtCore
# KATIE_<TOOL> - path to tool e.g. moc
#
set(KATIE_FOUND TRUE)
# Compute paths
get_filename_component(KATIE_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
get_filename_component(KATIE_PREFIX ${KATIE_CMAKE_DIR}/ ABSOLUTE)
# Include definitions for IMPORTED targets
include("${KATIE_CMAKE_DIR}/KatieLibraryTargets.cmake")
include("${KATIE_CMAKE_DIR}/KatieBinaryTargets.cmake")
# These are pre-set and dynamically set variables, some use IMPORTED targets
set(KATIE_DEFINITIONS @KATIE_DEFINITIONS@)
set(KATIE_INCLUDES @QT_HEADERS_PATH@)
set(KATIE_LIBRARIES)
set(KATIE_COMPONENTS @KATIE_COMPONENTS@)
set(KATIE_TOOLS @KATIE_TOOLS@)
set(KATIE_MKSPECS_DIR "${KATIE_CMAKE_DIR}/mkspecs")
set(KATIE_MKSPECS "${KATIE_MKSPECS_DIR}/mkspecs.cmake")
foreach(component ${KATIE_COMPONENTS})
string(TOUPPER ${component} uppercomp)
if(uppercomp STREQUAL "PHONON")
set(KATIE_INCLUDES ${KATIE_INCLUDES}
@QT_HEADERS_PATH@/phonon
@QT_HEADERS_PATH@/Phonon
)
set(KATIE_${uppercomp}_INCLUDES
@QT_HEADERS_PATH@/phonon
@QT_HEADERS_PATH@/Phonon
)
else()
set(KATIE_INCLUDES ${KATIE_INCLUDES} @QT_HEADERS_PATH@/Qt${component})
set(KATIE_${uppercomp}_INCLUDES @QT_HEADERS_PATH@/Qt${component})
endif()
set(KATIE_LIBRARIES ${KATIE_LIBRARIES} Katie::${component})
set(KATIE_${uppercomp}_LIBRARIES Katie::${component})
set(KATIE_${uppercomp}_FOUND TRUE)
endforeach()
foreach(tool ${KATIE_TOOLS})
string(TOUPPER ${tool} uppertool)
set(KATIE_${uppertool} Katie::${tool})
endforeach()
# Include macros, tools variables must be set before that
include("${KATIE_CMAKE_DIR}/KatieMacros.cmake")
# Last but not least the platform specifiec stuff
if(EXISTS ${KATIE_MKSPECS})
include(${KATIE_MKSPECS})
else()
message(SEND_ERROR "mkspecs file does not exists, it is set to: ${KATIE_MKSPECS}")
endif()
if(NOT "${KATIE_FIND_QUIETLY}")
message(STATUS "Found Katie version: ${KATIE_VERSION}")
endif()
# Qt4 compatibility by default, not a silver bullet
if(NOT KATIE_COMPAT EQUAL FALSE AND NOT KATIE_COMPAT EQUAL OFF)
message(STATUS "Setting up Qt4 compatibility via Katie")
# FIXME: once used lists turn into strings, great..
string(REPLACE " " ";" _TOOLS ${KATIE_TOOLS})
string(REPLACE " " ";" _COMPONENTS ${KATIE_COMPONENTS})
set(Qt4_FOUND TRUE)
set(QT_FOUND TRUE)
set(QT4_FOUND TRUE)
set(QT_VERSION_MAJOR ${KATIE_MAJOR})
set(QT_VERSION_MINOR ${KATIE_MINOR})
set(QT_VERSION_PATCH ${KATIE_MICRO})
set(QT_VERSION ${KATIE_VERSION})
set(QT_INCLUDES ${KATIE_INCLUDES})
set(QT_INCLUDE_DIR ${KATIE_INCLUDES})
set(QT_LIBRARIES ${KATIE_LIBRARIES})
set(QT_USE_FILE ${KATIE_MKSPECS})
set(QT_MKSPECS_DIR ${KATIE_MKSPECS_DIR})
# those are exceptions because they have "q" prefix
set(_binsuffix "${CMAKE_EXECUTABLE_SUFFIX}")
set(QT_DBUSXML2CPP_EXECUTABLE @QT_BINARIES_PATH@/qdbusxml2cpp${_binsuffix})
set(QT_DBUSCPP2XML_EXECUTABLE @QT_BINARIES_PATH@/qdbuscpp2xml${_binsuffix})
if(NOT KATIE_COMPAT_ISSET)
set(KATIE_COMPAT_ISSET CACHE BOOL TRUE "")
if(KATIE_TYPE STREQUAL SHARED)
set(_libsuffix "${CMAKE_SHARED_LIBRARY_SUFFIX}")
elseif(KATIE_TYPE STREQUAL MODULE)
set(_libsuffix "${CMAKE_SHARED_MODULE_SUFFIX}")
else()
set(_libsuffix "${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
foreach(tool ${_TOOLS})
add_executable(Qt4::${tool} IMPORTED)
set_property(
TARGET Qt4::${tool}
PROPERTY
IMPORTED_LOCATION @QT_BINARIES_PATH@/${tool}${_binsuffix}
)
string(TOUPPER ${tool} uppertool)
set(QT_${uppertool}_EXECUTABLE @QT_BINARIES_PATH@/${tool}${_binsuffix})
endforeach()
foreach(component ${_COMPONENTS})
add_library(Qt4::Qt${component} ${KATIE_TYPE} IMPORTED)
set_property(
TARGET Qt4::Qt${component}
PROPERTY
IMPORTED_LOCATION @QT_LIBRARIES_PATH@/libKt${component}${_libsuffix}
)
endforeach()
endif()
# bad assumption, Qt4 module does it
if(UNIX)
set(Q_WS_X11 TRUE)
find_package(X11 REQUIRED)
endif()
foreach(component ${_COMPONENTS})
string(TOUPPER ${component} uppercomp)
set(QT_QT${uppercomp}_FOUND ${KATIE_${uppercomp}_FOUND})
set(QT_QT${uppercomp}_LIBRARY "${KATIE_${uppercomp}_LIBRARIES}")
set(QT_QT${uppercomp}_LIBRARIES "${KATIE_${uppercomp}_LIBRARIES}")
set(QT_QT${uppercomp}_INCLUDE_DIR "@QT_HEADERS_PATH@ ${KATIE_${uppercomp}_INCLUDES}")
# TODO: component definitions
endforeach()
set(QT_DEFINITIONS ${KATIE_DEFINITIONS} -DQT_INCLUDE_COMPAT)
# not much to be done about those..
include(Qt4Macros)
include(MacroAddFileDependencies)
endif()

View file

@ -0,0 +1,4 @@
set(KATIE_VERSION_MAJOR "@KATIE_MAJOR@")
set(KATIE_VERSION_MINOR "@KATIE_MINOR@")
set(KATIE_VERSION_PATCH "@KATIE_MICRO@")
set(KATIE_VERSION "@KATIE_MAJOR@.@KATIE_MINOR@.@KATIE_MICRO@")

6
cmake/getkey.cpp Normal file
View file

@ -0,0 +1,6 @@
#include "qdebug.h"
#include "qlibraryinfo.h"
int main() {
qDebug() << QLibraryInfo::buildKey();
}

View file

@ -0,0 +1,111 @@
# FROM: https://gist.github.com/ajmontag/4043875
#
# - try to find the dbus library
#
# Finddbus.cmake
#
# Cache Variables: (probably not for direct use in CMakeLists.txt)
# DBUS_ROOT_DIR
# DBUS_LIBRARY
# DBUS_INCLUDE_DIR
#
# Non-cache variables you might use in your CMakeLists.txt:
# DBUS_FOUND
#
# DBUS_LIBRARIES
# DBUS_INCLUDE_DIRS
#
# Use this module this way:
# find_package(dbus)
# include_directories(DBUS_INCLUDE_DIRS)
# add_executable(myapp ${SOURCES})
# target_link_libraries(myapp ${DBUS_LIBRARIES})
#
# Requires these CMake modules:
# FindPackageHandleStandardArgs (CMake standard module)
# FindPkgConfig (CMake standard module)
#
# Dependencies:
# none
#
# BEGIN_DOT_FILE
# dbus [ label = "dbus" ];
# END_DOT_FILE
#
# Author:
# Kevin M. Godby <kevin@godby.org>
#
# License:
# Boost 1.0 <http://www.boost.org/users/license.html>
set(DBUS_ROOT_DIR
"${DBUS_ROOT_DIR}"
CACHE
PATH
"Prefix directory for libdbus")
# Now let's find the dbus library
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(_dbus_hint QUIET dbus-1)
endif()
set(dbus_vars DBUS_INCLUDE_DIR)
##find_library(DBUS_LIBRARY
## NAMES
## dbus
## HINTS
## ${DBUS_ROOT_DIR}
## ${_dbus_hint_LIBRARY_DIRS}
## PATH_SUFFIXES
## lib
## lib32
## lib64
##)
##list(APPEND dbus_vars DBUS_LIBRARY)
find_path(DBUS_INCLUDE_DIR
NAMES
dbus/dbus.h
HINTS
${DBUS_ROOT_DIR}
${_dbus_hint_INCLUDE_DIRS}
PATH_SUFFIXES
include/
include/dbus-1.0/
dbus-1.0/
)
find_path(DBUS_ARCH_INCLUDE_DIR
NAMES
dbus/dbus-arch-deps.h
HINTS
${DBUS_ROOT_DIR}
${_dbus_hint_INCLUDE_DIRS}
${_dbus_hint_LIBRARY_DIRS}
PATH_SUFFIXES
include/
include/dbus-1.0/
dbus-1.0/
)
list(APPEND dbus_vars DBUS_ARCH_INCLUDE_DIR)
# handle the QUIETLY and REQUIRED arguments and set DBUS_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(dbus
DEFAULT_MSG
${dbus_vars})
if(DBUS_FOUND)
# Set variables containing libraries and their dependencies
# Always use the plural form for the variables defined by other find modules:
# they might have dependencies too!
##list(APPEND DBUS_LIBRARIES ${DBUS_LIBRARY})
set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR})
mark_as_advanced(DBUS_ROOT_DIR)
endif()
mark_as_advanced(${dbus_vars})
# End of Finddbus.cmake

View file

@ -0,0 +1,39 @@
# - Try to find EGL
# Once done this will define
#
# EGL_FOUND - system has EGL
# EGL_INCLUDES - the EGL include directory
# EGL_LIBRARIES - The libraries needed to use EGL
#
# Copyright (c) 2015, Ivailo Monev, <xakepa10@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
if(EGL_INCLUDES AND EGL_LIBRARIES)
set(EGL_FIND_QUIETLY TRUE)
endif(EGL_INCLUDES AND EGL_LIBRARIES)
find_path(EGL_INCLUDES
NAMES
egl.h
PATH_SUFFIXES EGL
HINTS
$ENV{EGLDIR}/include
/usr/include
/usr/local/include
${INCLUDE_INSTALL_DIR}
)
find_library(EGL_LIBRARIES
EGL
HINTS
$ENV{EGLDIR}/lib
/usr/lib
/usr/local/lib
${LIB_INSTALL_DIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(EGL DEFAULT_MSG EGL_INCLUDES EGL_LIBRARIES)
mark_as_advanced(EGL_INCLUDES EGL_LIBRARIES)

View file

@ -0,0 +1,50 @@
# - Try to find the Fontconfig
# Once done this will define
#
# FONTCONFIG_FOUND - system has Fontconfig
# FONTCONFIG_INCLUDE_DIR - The include directory to use for the fontconfig headers
# FONTCONFIG_LIBRARIES - Link these to use FONTCONFIG
# FONTCONFIG_DEFINITIONS - Compiler switches required for using FONTCONFIG
# Copyright (c) 2006,2007 Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR)
# in cache already
set(FONTCONFIG_FOUND TRUE)
else (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR)
if (NOT WIN32)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_FONTCONFIG QUIET fontconfig)
set(FONTCONFIG_DEFINITIONS ${PC_FONTCONFIG_CFLAGS_OTHER})
endif (NOT WIN32)
find_path(FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h
PATHS
${PC_FONTCONFIG_INCLUDEDIR}
${PC_FONTCONFIG_INCLUDE_DIRS}
/usr/X11/include
)
find_library(FONTCONFIG_LIBRARIES NAMES fontconfig
PATHS
${PC_FONTCONFIG_LIBDIR}
${PC_FONTCONFIG_LIBRARY_DIRS}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Fontconfig DEFAULT_MSG FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR )
mark_as_advanced(FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR)
endif (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR)

View file

@ -0,0 +1,52 @@
# - Try to find the GLIB2 libraries
# Once done this will define
#
# GLIB2_FOUND - system has glib2
# GLIB2_INCLUDE_DIR - the glib2 include directory
# GLIB2_LIBRARIES - glib2 library
# Copyright (c) 2008 Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES)
# Already in cache, be silent
set(GLIB2_FIND_QUIETLY TRUE)
endif(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES)
find_package(PkgConfig)
pkg_check_modules(PC_LibGLIB2 QUIET glib-2.0)
find_path(GLIB2_MAIN_INCLUDE_DIR
NAMES glib.h
HINTS ${PC_LibGLIB2_INCLUDEDIR}
PATH_SUFFIXES glib-2.0)
find_library(GLIB2_LIBRARY
NAMES glib-2.0
HINTS ${PC_LibGLIB2_LIBDIR}
)
set(GLIB2_LIBRARIES ${GLIB2_LIBRARY})
# search the glibconfig.h include dir under the same root where the library is found
get_filename_component(glib2LibDir "${GLIB2_LIBRARIES}" PATH)
find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h
PATH_SUFFIXES glib-2.0/include
HINTS ${PC_LibGLIB2_INCLUDEDIR} "${glib2LibDir}" ${CMAKE_SYSTEM_LIBRARY_PATH})
set(GLIB2_INCLUDE_DIR "${GLIB2_MAIN_INCLUDE_DIR}")
# not sure if this include dir is optional or required
# for now it is optional
if(GLIB2_INTERNAL_INCLUDE_DIR)
set(GLIB2_INCLUDE_DIR ${GLIB2_INCLUDE_DIR} "${GLIB2_INTERNAL_INCLUDE_DIR}")
endif(GLIB2_INTERNAL_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_MAIN_INCLUDE_DIR)
mark_as_advanced(GLIB2_INCLUDE_DIR GLIB2_LIBRARIES)

View file

@ -0,0 +1,46 @@
# Copyright (c) 2012, Intel Corporation
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors may
# be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Try to find Harfbuzz include and library directories.
#
# After successful discovery, this will set for inclusion where needed:
# HARFBUZZ_INCLUDE_DIRS - containg the HarfBuzz headers
# HARFBUZZ_LIBRARIES - containg the HarfBuzz library
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_HARFBUZZ harfbuzz>=0.9.0)
FIND_PATH(HARFBUZZ_INCLUDE_DIRS NAMES hb.h
HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR}
)
FIND_LIBRARY(HARFBUZZ_LIBRARIES NAMES harfbuzz
HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR}
)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(HarfBuzz DEFAULT_MSG HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES)

View file

@ -0,0 +1,57 @@
# - Try to find Iconv
# Once done this will define
#
# ICONV_FOUND - system has Iconv
# ICONV_INCLUDE_DIR - the Iconv include directory
# ICONV_LIBRARIES - Link these to use Iconv
# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
#
include(CheckCXXSourceCompiles)
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
# Already in cache, be silent
SET(ICONV_FIND_QUIETLY TRUE)
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
SET(ICONV_FOUND TRUE)
ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
IF(ICONV_FOUND)
check_cxx_source_compiles("
#include <iconv.h>
int main(){
iconv_t conv = 0;
const char* in = 0;
size_t ilen = 0;
char* out = 0;
size_t olen = 0;
iconv(conv, &in, &ilen, &out, &olen);
return 0;
}
" ICONV_SECOND_ARGUMENT_IS_CONST )
ENDIF(ICONV_FOUND)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
IF(ICONV_FOUND)
IF(NOT ICONV_FIND_QUIETLY)
MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
ENDIF(NOT ICONV_FIND_QUIETLY)
ELSE(ICONV_FOUND)
IF(Iconv_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Iconv")
ENDIF(Iconv_FIND_REQUIRED)
ENDIF(ICONV_FOUND)
MARK_AS_ADVANCED(
ICONV_INCLUDE_DIR
ICONV_LIBRARIES
ICONV_SECOND_ARGUMENT_IS_CONST
)

View file

@ -0,0 +1,108 @@
# CMake module to search for LIBVLC (VLC library)
#
# Copyright (C) 2011-2012, Harald Sitter <sitter@kde.org>
# Copyright (C) 2010, Rohit Yadav <rohityadav89@gmail.com>
# Copyright (C) 2015, Ivailo Monev <xakepa10@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
#
# If it's found it sets LIBVLC_FOUND to TRUE
# and following variables are set:
# LIBVLC_INCLUDE_DIR
# LIBVLC_LIBRARY
# LIBVLC_VERSION
if(NOT LIBVLC_MIN_VERSION)
set(LIBVLC_MIN_VERSION "0.0")
endif(NOT LIBVLC_MIN_VERSION)
# find_path and find_library normally search standard locations
# before the specified paths. To search non-standard paths first,
# FIND_* is invoked first with specified paths and NO_DEFAULT_PATH
# and then again with no specified paths to search the default
# locations. When an earlier FIND_* succeeds, subsequent FIND_*s
# searching for the same item do nothing.
if (NOT WIN32)
find_package(PkgConfig)
pkg_check_modules(PC_LIBVLC libvlc)
set(LIBVLC_DEFINITIONS ${PC_LIBVLC_CFLAGS_OTHER})
endif (NOT WIN32)
#Put here path to custom location
#example: /home/user/vlc/include etc..
find_path(LIBVLC_INCLUDE_DIR vlc/vlc.h
HINTS "$ENV{LIBVLC_INCLUDE_PATH}" ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS}
PATHS
"$ENV{LIB_DIR}/include"
"$ENV{LIB_DIR}/include/vlc"
"/usr/include"
"/usr/include/vlc"
"/usr/local/include"
"/usr/local/include/vlc"
#mingw
c:/msys/local/include
)
find_path(LIBVLC_INCLUDE_DIR PATHS "${CMAKE_INCLUDE_PATH}/vlc" NAMES vlc.h
HINTS ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS})
#Put here path to custom location
#example: /home/user/vlc/lib etc..
find_library(LIBVLC_LIBRARY NAMES vlc libvlc
HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS
"$ENV{LIB_DIR}/lib"
#mingw
c:/msys/local/lib
)
find_library(LIBVLC_LIBRARY NAMES vlc libvlc)
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore
HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS
"$ENV{LIB_DIR}/lib"
#mingw
c:/msys/local/lib
)
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore)
set(LIBVLC_VERSION ${PC_LIBVLC_VERSION})
if (NOT LIBVLC_VERSION AND LIBVLC_INCLUDE_DIR)
file(READ "${LIBVLC_INCLUDE_DIR}/vlc/libvlc_version.h" _libvlc_version_h)
string(REGEX MATCH "# define LIBVLC_VERSION_MAJOR +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
set(_version_major "${CMAKE_MATCH_1}")
string(REGEX MATCH "# define LIBVLC_VERSION_MINOR +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
set(_version_minor "${CMAKE_MATCH_1}")
string(REGEX MATCH "# define LIBVLC_VERSION_REVISION +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
set(_version_revision "${CMAKE_MATCH_1}")
# Optionally, one could also parse LIBVLC_VERSION_EXTRA, but it does not
# seem to be used by libvlc.pc.
set(LIBVLC_VERSION "${_version_major}.${_version_minor}.${_version_revision}")
endif (NOT LIBVLC_VERSION AND LIBVLC_INCLUDE_DIR)
if (LIBVLC_INCLUDE_DIR AND LIBVLC_LIBRARY AND LIBVLCCORE_LIBRARY)
set(LIBVLC_FOUND TRUE)
endif (LIBVLC_INCLUDE_DIR AND LIBVLC_LIBRARY AND LIBVLCCORE_LIBRARY)
if (LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}")
message(WARNING "LibVLC version not found: version searched: ${LIBVLC_MIN_VERSION}, found ${LIBVLC_VERSION}\nUnless you are on Windows this is bound to fail.")
# TODO: only activate once version detection can be garunteed (which is currently not the case on windows)
# set(LIBVLC_FOUND FALSE)
endif (LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}")
if (LIBVLC_FOUND)
if (NOT LIBVLC_FIND_QUIETLY)
message(STATUS "Found LibVLC include-dir path: ${LIBVLC_INCLUDE_DIR}")
message(STATUS "Found LibVLC library path:${LIBVLC_LIBRARY}")
message(STATUS "Found LibVLCcore library path:${LIBVLCCORE_LIBRARY}")
message(STATUS "Found LibVLC version: ${LIBVLC_VERSION} (searched for: ${LIBVLC_MIN_VERSION})")
endif (NOT LIBVLC_FIND_QUIETLY)
else (LIBVLC_FOUND)
if (LIBVLC_FIND_REQUIRED)
message(FATAL_ERROR "Could not find LibVLC")
endif (LIBVLC_FIND_REQUIRED)
endif (LIBVLC_FOUND)

View file

@ -0,0 +1,44 @@
# - Try to find the libmng
# Once done this will define
#
# MNG_FOUND - system has libmng
# MNG_INCLUDES - the libmng include directory
# MNG_LIBRARIES - The libraries needed to use libmng
#
# Copyright (c) 2015, Ivailo Monev, <xakepa10@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
if (MNG_INCLUDES AND MNG_LIBRARIES)
set(MNG_FIND_QUIETLY TRUE)
endif (MNG_INCLUDES AND MNG_LIBRARIES)
if (NOT WIN32)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_LIBMNG QUIET libmng)
endif (NOT WIN32)
find_path(MNG_INCLUDES
NAMES
libmng.h
PATH_SUFFIXES mng
HINTS
$ENV{MNGDIR}/include
${PC_LIBMNG_INCLUDEDIR}
${INCLUDE_INSTALL_DIR}
)
find_library(MNG_LIBRARIES
mng
HINTS
$ENV{MNGDIR}/lib
${PC_LIBMNG_LIBDIR}
${LIB_INSTALL_DIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MNG DEFAULT_MSG MNG_INCLUDES MNG_LIBRARIES)
mark_as_advanced(MNG_INCLUDES MNG_LIBRARIES)

View file

@ -0,0 +1,138 @@
# - Try to find MySQL / MySQL Embedded library
# Find the MySQL includes and client library
# This module defines
# MYSQL_INCLUDE_DIR, where to find mysql.h
# MYSQL_LIBRARIES, the libraries needed to use MySQL.
# MYSQL_LIB_DIR, path to the MYSQL_LIBRARIES
# MYSQL_EMBEDDED_LIBRARIES, the libraries needed to use MySQL Embedded.
# MYSQL_EMBEDDED_LIB_DIR, path to the MYSQL_EMBEDDED_LIBRARIES
# MYSQL_FOUND, If false, do not try to use MySQL.
# MYSQL_EMBEDDED_FOUND, If false, do not try to use MySQL Embedded.
# Copyright (c) 2006-2008, Jarosław Staniek <staniek@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
include(CheckCXXSourceCompiles)
include(MacroPushRequiredVars)
if(WIN32)
find_path(MYSQL_INCLUDE_DIR mysql.h
PATHS
$ENV{MYSQL_INCLUDE_DIR}
$ENV{MYSQL_DIR}/include
$ENV{ProgramFiles}/MySQL/*/include
$ENV{SystemDrive}/MySQL/*/include
)
else(WIN32)
find_path(MYSQL_INCLUDE_DIR mysql.h
PATHS
$ENV{MYSQL_INCLUDE_DIR}
$ENV{MYSQL_DIR}/include
/usr/local/mysql/include
/opt/mysql/mysql/include
PATH_SUFFIXES
mysql
)
endif(WIN32)
if(WIN32)
# path suffix for debug/release mode
# binary_dist: mysql binary distribution
# build_dist: custom build
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(binary_dist debug)
set(build_dist Debug)
else()
ADD_DEFINITIONS(-DDBUG_OFF)
set(binary_dist opt)
set(build_dist Release)
endif()
# find_library(MYSQL_LIBRARIES NAMES mysqlclient
find_library(MYSQL_LIBRARIES NAMES libmysql
PATHS
$ENV{MYSQL_DIR}/lib/${binary_dist}
$ENV{MYSQL_DIR}/libmysql/${build_dist}
$ENV{MYSQL_DIR}/client/${build_dist}
$ENV{ProgramFiles}/MySQL/*/lib/${binary_dist}
$ENV{SystemDrive}/MySQL/*/lib/${binary_dist}
)
else(WIN32)
# find_library(MYSQL_LIBRARIES NAMES mysqlclient
find_library(MYSQL_LIBRARIES NAMES libmysql
PATHS
$ENV{MYSQL_DIR}/libmysql_r/.libs
$ENV{MYSQL_DIR}/lib
$ENV{MYSQL_DIR}/lib/mysql
/usr/local/mysql/lib
/opt/mysql/mysql/lib
PATH_SUFFIXES
mysql
)
endif(WIN32)
if(WIN32)
set(MYSQL_LIB_PATHS
$ENV{MYSQL_DIR}/lib/opt
$ENV{MYSQL_DIR}/client/release
$ENV{ProgramFiles}/MySQL/*/lib/opt
$ENV{SystemDrive}/MySQL/*/lib/opt
)
find_library(MYSQL_LIBRARIES NAMES mysqlclient
PATHS
${MYSQL_LIB_PATHS}
)
else(WIN32)
set(MYSQL_LIB_PATHS
$ENV{MYSQL_DIR}/libmysql_r/.libs
$ENV{MYSQL_DIR}/lib
$ENV{MYSQL_DIR}/lib/mysql
/usr/local/mysql/lib
/opt/mysql/mysql/lib
PATH_SUFFIXES
mysql
)
find_library(MYSQL_LIBRARIES NAMES mysqlclient
PATHS
${MYSQL_LIB_PATHS}
)
endif(WIN32)
find_library(MYSQL_EMBEDDED_LIBRARIES NAMES mysqld
PATHS
${MYSQL_LIB_PATHS}
)
if(MYSQL_LIBRARIES)
get_filename_component(MYSQL_LIB_DIR ${MYSQL_LIBRARIES} PATH)
endif(MYSQL_LIBRARIES)
if(MYSQL_EMBEDDED_LIBRARIES)
get_filename_component(MYSQL_EMBEDDED_LIB_DIR ${MYSQL_EMBEDDED_LIBRARIES} PATH)
endif(MYSQL_EMBEDDED_LIBRARIES)
macro_push_required_vars()
set( CMAKE_REQUIRED_INCLUDES ${MYSQL_INCLUDE_DIR} )
set( CMAKE_REQUIRED_LIBRARIES ${MYSQL_EMBEDDED_LIBRARIES} )
check_cxx_source_compiles( "#include <mysql.h>\nint main() { int i = MYSQL_OPT_USE_EMBEDDED_CONNECTION; }" HAVE_MYSQL_OPT_EMBEDDED_CONNECTION )
macro_pop_required_vars()
if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
set(MYSQL_FOUND TRUE)
message(STATUS "Found MySQL: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}")
else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
set(MYSQL_FOUND FALSE)
message(STATUS "MySQL not found.")
endif(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
if(MYSQL_INCLUDE_DIR AND MYSQL_EMBEDDED_LIBRARIES AND HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)
set(MYSQL_EMBEDDED_FOUND TRUE)
message(STATUS "Found MySQL Embedded: ${MYSQL_INCLUDE_DIR}, ${MYSQL_EMBEDDED_LIBRARIES}")
else(MYSQL_INCLUDE_DIR AND MYSQL_EMBEDDED_LIBRARIES AND HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)
set(MYSQL_EMBEDDED_FOUND FALSE)
message(STATUS "MySQL Embedded not found.")
endif(MYSQL_INCLUDE_DIR AND MYSQL_EMBEDDED_LIBRARIES AND HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)
mark_as_advanced(MYSQL_INCLUDE_DIR MYSQL_LIBRARIES MYSQL_EMBEDDED_LIBRARIES)

View file

@ -0,0 +1,39 @@
# - Try to find Network Audio System
# Once done this will define
#
# NAS_FOUND - system has Network Audio System
# NAS_INCLUDES - the Network Audio System include directory
# NAS_LIBRARIES - The libraries needed to use Network Audio System
#
# Copyright (c) 2015, Ivailo Monev, <xakepa10@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
if(NAS_INCLUDES AND NAS_LIBRARIES)
set(NAS_FIND_QUIETLY TRUE)
endif(NAS_INCLUDES AND NAS_LIBRARIES)
find_path(NAS_INCLUDES
NAMES
audio.h
PATH_SUFFIXES audio
HINTS
$ENV{NASDIR}/include
/usr/include
/usr/local/include
${INCLUDE_INSTALL_DIR}
)
find_library(NAS_LIBRARIES
audio
HINTS
$ENV{NASDIR}/lib
/usr/lib
/usr/local/lib
${LIB_INSTALL_DIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(NAS DEFAULT_MSG NAS_INCLUDES NAS_LIBRARIES)
mark_as_advanced(NAS_INCLUDES NAS_LIBRARIES)

View file

@ -0,0 +1,58 @@
#
# Find the ODBC driver manager includes and library.
#
# ODBC is an open standard for connecting to different databases in a
# semi-vendor-independent fashion. First you install the ODBC driver
# manager. Then you need a driver for each separate database you want
# to connect to (unless a generic one works). VTK includes neither
# the driver manager nor the vendor-specific drivers: you have to find
# those yourself.
#
# This module defines
# ODBC_INCLUDE_DIRECTORIES, where to find sql.h
# ODBC_LIBRARIES, the libraries to link against to use ODBC
# ODBC_FOUND. If false, you cannot build anything that requires MySQL.
# also defined, but not for general use is
# ODBC_LIBRARY, where to find the ODBC driver manager library.
set(ODBC_FOUND FALSE)
find_path(ODBC_INCLUDE_DIR sql.h
/usr/include
/usr/include/odbc
/usr/local/include
/usr/local/include/odbc
/usr/local/odbc/include
"C:/Program Files/ODBC/include"
"C:/Program Files/Microsoft SDKs/Windows/v7.0A/include"
"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/include"
"C:/Program Files/Microsoft SDKs/Windows/v6.0a/include"
"C:/ODBC/include"
DOC "Specify the directory containing sql.h."
)
find_library(ODBC_LIBRARY
NAMES iodbc odbc odbcinst odbc32
PATHS
/usr/lib
/usr/lib/odbc
/usr/local/lib
/usr/local/lib/odbc
/usr/local/odbc/lib
"C:/Program Files/ODBC/lib"
"C:/ODBC/lib/debug"
"C:/Program Files/Microsoft SDKs/Windows/v7.0A/Lib"
"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib"
DOC "Specify the ODBC driver manager library here."
)
if(ODBC_LIBRARY)
if(ODBC_INCLUDE_DIR)
set( ODBC_FOUND 1 )
endif()
endif()
set(ODBC_LIBRARIES ${ODBC_LIBRARY})
mark_as_advanced(ODBC_FOUND ODBC_LIBRARY ODBC_EXTRA_LIBRARIES ODBC_INCLUDE_DIR)

View file

@ -0,0 +1,71 @@
# Try to find the PulseAudio library
#
# Once done this will define:
#
# PULSEAUDIO_FOUND - system has the PulseAudio library
# PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory
# PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio
# PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mainloop
#
# The minimum required version of PulseAudio can be specified using the
# standard syntax, e.g. find_package(PulseAudio 1.0)
# Copyright (c) 2008, Matthias Kretz, <kretz@kde.org>
# Copyright (c) 2009, Marcus Hufgard, <Marcus.Hufgard@hufgard.de>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# Support PULSEAUDIO_MINIMUM_VERSION for compatibility:
if(NOT PulseAudio_FIND_VERSION)
set(PulseAudio_FIND_VERSION "${PULSEAUDIO_MINIMUM_VERSION}")
endif(NOT PulseAudio_FIND_VERSION)
# the minimum version of PulseAudio we require
if(NOT PulseAudio_FIND_VERSION)
set(PulseAudio_FIND_VERSION "0.9.9")
endif(NOT PulseAudio_FIND_VERSION)
if (NOT WIN32)
include(FindPkgConfig)
pkg_check_modules(PC_PULSEAUDIO QUIET libpulse>=${PulseAudio_FIND_VERSION})
pkg_check_modules(PC_PULSEAUDIO_MAINLOOP QUIET libpulse-mainloop-glib)
endif (NOT WIN32)
find_path(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h
HINTS
${PC_PULSEAUDIO_INCLUDEDIR}
${PC_PULSEAUDIO_INCLUDE_DIRS}
)
find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
HINTS
${PC_PULSEAUDIO_LIBDIR}
${PC_PULSEAUDIO_LIBRARY_DIRS}
)
find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
HINTS
${PC_PULSEAUDIO_LIBDIR}
${PC_PULSEAUDIO_LIBRARY_DIRS}
)
# Store the version number in the cache, so we don't have to search every time again:
if (PULSEAUDIO_INCLUDE_DIR AND NOT PULSEAUDIO_VERSION)
# get PulseAudio's version from its version.h, and compare it with our minimum version
file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulse_version_h
REGEX ".*pa_get_headers_version\\(\\).*"
)
string(REGEX REPLACE ".*pa_get_headers_version\\(\\)\ \\(\"([0-9]+\\.[0-9]+\\.[0-9]+)[^\"]*\"\\).*" "\\1"
_PULSEAUDIO_VERSION "${pulse_version_h}")
set(PULSEAUDIO_VERSION "${_PULSEAUDIO_VERSION}" CACHE STRING "Version number of PulseAudio" FORCE)
endif (PULSEAUDIO_INCLUDE_DIR AND NOT PULSEAUDIO_VERSION)
# Use the new extended syntax of find_package_handle_standard_args(), which also handles version checking:
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PulseAudio REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR
VERSION_VAR PULSEAUDIO_VERSION )
mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY)

View file

@ -0,0 +1,48 @@
# - Try to find the sqlite library
# Once done this will define
#
# SQLITE_FOUND - system has sqlite
# SQLITE_INCLUDE_DIRS - the sqlite include directory
# SQLITE_LIBRARIES - Link these to use sqlite
#
# Define SQLITE_MIN_VERSION for which version desired.
#
INCLUDE(FindPkgConfig)
IF(Sqlite_FIND_REQUIRED)
SET(_pkgconfig_REQUIRED "REQUIRED")
ELSE(Sqlite_FIND_REQUIRED)
SET(_pkgconfig_REQUIRED "")
ENDIF(Sqlite_FIND_REQUIRED)
IF(SQLITE_MIN_VERSION)
PKG_SEARCH_MODULE(SQLITE ${_pkgconfig_REQUIRED} sqlite>=${SQLITE_MIN_VERSION} sqlite${SQLITE_MIN_VERSION})
ELSE(SQLITE_MIN_VERSION)
PKG_SEARCH_MODULE(SQLITE ${_pkgconfig_REQUIRED} sqlite)
ENDIF(SQLITE_MIN_VERSION)
IF(NOT SQLITE_FOUND AND NOT PKG_CONFIG_FOUND)
FIND_PATH(SQLITE_INCLUDE_DIRS sqlite${SQLITE_MIN_VERSION}.h)
FIND_LIBRARY(SQLITE_LIBRARIES sqlite${SQLITE_MIN_VERSION})
# Report results
IF(SQLITE_LIBRARIES AND SQLITE_INCLUDE_DIRS)
SET(SQLITE_FOUND 1)
IF(NOT Sqlite_FIND_QUIETLY)
MESSAGE(STATUS "Found Sqlite: ${SQLITE_LIBRARIES}")
ENDIF(NOT Sqlite_FIND_QUIETLY)
ELSE(SQLITE_LIBRARIES AND SQLITE_INCLUDE_DIRS)
IF(Sqlite_FIND_REQUIRED)
MESSAGE(SEND_ERROR "Could not find Sqlite")
ELSE(Sqlite_FIND_REQUIRED)
IF(NOT Sqlite_FIND_QUIETLY)
MESSAGE(STATUS "Could not find Sqlite")
ENDIF(NOT Sqlite_FIND_QUIETLY)
ENDIF(Sqlite_FIND_REQUIRED)
ENDIF(SQLITE_LIBRARIES AND SQLITE_INCLUDE_DIRS)
ENDIF(NOT SQLITE_FOUND AND NOT PKG_CONFIG_FOUND)
# Hide advanced variables from CMake GUIs
MARK_AS_ADVANCED(SQLITE_LIBRARIES SQLITE_INCLUDE_DIRS)

View file

@ -0,0 +1,54 @@
# - Try to find the Wayland directory library
# Once done this will define
#
# WAYLAND_FOUND - system has Wayland libraries
# WAYLAND_SERVER_FOUND - system has Wayland server libraries
# WAYLAND_CLIENT_FOUND - system has Wayland client libraries
# WAYLAND_SERVER_INCLUDE_DIR - Wayland Server include directory
# WAYLAND_SERVER_LIBRARIES - The libraries needed for Wayland Server
# WAYLAND_CLIENT_INCLUDE_DIR - Wayland Client include directory
# WAYLAND_CLIENT_LIBRARIES - The libraries needed for Wayland Clients
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_WAYLAND_SERVER_PC QUIET wayland-server)
pkg_check_modules(_WAYLAND_CLIENT_PC QUIET wayland-client)
endif (PKG_CONFIG_FOUND)
# Wayland server
FIND_PATH(WAYLAND_SERVER_INCLUDE_DIR wayland-server.h
${_WAYLAND_SERVER_PC_INCLUDE_DIRS}
)
FIND_LIBRARY(WAYLAND_SERVER_LIBRARIES NAMES wayland-server
PATHS
${_WAYLAND_SERVER_PC_LIBDIR}
)
if (WAYLAND_SERVER_INCLUDE_DIR AND WAYLAND_SERVER_LIBRARIES)
set(WAYLAND_SERVER_FOUND TRUE)
endif (WAYLAND_SERVER_INCLUDE_DIR AND WAYLAND_SERVER_LIBRARIES)
# Wayland Client
FIND_PATH(WAYLAND_CLIENT_INCLUDE_DIR wayland-client.h
${_WAYLAND_CLIENT_PC_INCLUDE_DIRS}
)
FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client
PATHS
${_WAYLAND_CLIENT_PC_LIBDIR}
)
if (WAYLAND_CLIENT_INCLUDE_DIR AND WAYLAND_CLIENT_LIBRARIES)
set(WAYLAND_CLIENT_FOUND TRUE)
endif (WAYLAND_CLIENT_INCLUDE_DIR AND WAYLAND_CLIENT_LIBRARIES)
if (WAYLAND_SERVER_FOUND AND WAYLAND_CLIENT_FOUND)
set(WAYLAND_FOUND TRUE)
endif (WAYLAND_SERVER_FOUND AND WAYLAND_CLIENT_FOUND)
MARK_AS_ADVANCED(WAYLAND_SERVER_INCLUDE_DIR WAYLAND_SERVER_LIBRARIES WAYLAND_CLIENT_INCLUDE_DIR WAYLAND_CLIENT_LIBRARIES)

View file

@ -0,0 +1,174 @@
# Copyright (c) 2015, Ivailo Monev, <xakepa10@gmail.com>
# Redistribution and use is allowed according to the terms of the BSD license.
if(CMAKE_CROSSCOMPILING)
# TODO: do not require native tools, build them
set(KATIE_UIC "uic")
set(KATIE_RCC "rcc")
set(KATIE_MOC "moc")
set(KATIE_LRELEASE "lrelease")
else()
set(KATIE_UIC "bootstrap_uic")
set(KATIE_RCC "bootstrap_rcc")
set(KATIE_MOC "bootstrap_moc")
set(KATIE_LRELEASE "bootstrap_lrelease")
endif()
set(KATIE_QDBUSXML2CPP "qdbusxml2cpp")
macro(KATIE_GENERATE_MAP SUBDIR KEYWORD)
execute_process(
COMMAND ${CMAKE_SOURCE_DIR}/scripts/genmap.py ${SUBDIR} ${KEYWORD}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
endmacro()
set(CLASSMAPOUT ${CMAKE_BINARY_DIR}/include/qclass_lib_map.h)
file(WRITE ${CLASSMAPOUT} "")
macro(KATIE_GENERATE_PUBLIC PUBLIC_INCLUDES SUBDIR)
set(metaout ${CMAKE_BINARY_DIR}/include/${SUBDIR}/${SUBDIR})
set(metadata "#ifndef Qt${SUBDIR}_META_H\n#define Qt${SUBDIR}_META_H\n\n")
foreach(pubheader ${PUBLIC_INCLUDES})
string(TOLOWER ${pubheader} pubname)
get_filename_component(pubname ${pubname} NAME_WE)
set(pubout ${CMAKE_BINARY_DIR}/include/${SUBDIR}/${pubheader})
set(pubcheck ${CMAKE_BINARY_DIR}/include/${SUBDIR}/${pubname}.h)
if(NOT EXISTS ${pubout})
file(WRITE ${pubout} "#include <${pubname}.h>")
endif()
if(NOT EXISTS ${pubcheck})
message(AUTHOR_WARNING "Bogus public header: ${pubheader} (${pubcheck})")
else()
set(metadata "${metadata}#include <${SUBDIR}/${pubname}.h>\n")
endif()
endforeach(pubheader)
set(metadata "${metadata}\n#endif\n")
file(WRITE ${metaout} "${metadata}")
file(APPEND ${CLASSMAPOUT} "#include <${SUBDIR}_map.h>\n")
endmacro()
macro(KATIE_GENERATE_MISC MISC_INCLUDES SUBDIR)
foreach(mischeader ${MISC_INCLUDES})
get_filename_component(headername ${mischeader} NAME)
if("${headername}" MATCHES "(_p.h)")
set(headout ${CMAKE_BINARY_DIR}/privateinclude/${SUBDIR}/${headername})
else()
set(headout ${CMAKE_BINARY_DIR}/include/${SUBDIR}/${headername})
endif()
configure_file(${mischeader} ${headout} COPYONLY)
endforeach(mischeader)
endmacro()
macro(KATIE_GENERATE_OBSOLETE OBSOLETE_INCLUDE SUBDIR REDIRECT)
set(pubout ${CMAKE_BINARY_DIR}/include/${SUBDIR}/${OBSOLETE_INCLUDE})
if(NOT EXISTS "${pubout}")
file(WRITE "${pubout}" "#include <${SUBDIR}/${REDIRECT}>")
endif()
endmacro()
macro(KATIE_GENERATE_PACKAGE FORTARGET CXXFLAGS LIBRARIES REQUIRES)
if(UNIX)
# the list must be adjusted
string(REPLACE ";" " -l" modlibs "${LIBRARIES}")
if(NOT "${modlibs}" STREQUAL "")
set(modlibs "-l${modlibs}")
endif()
string(REPLACE "Kt" "Qt" PACKAGE_FAKE "${FORTARGET}")
set(PACKAGE_NAME ${FORTARGET})
set(PACKAGE_CFLAGS ${CXXFLAGS})
set(PACKAGE_LIBRARIES ${modlibs})
set(PACKAGE_REQUIRES ${REQUIRES})
configure_file(
${CMAKE_SOURCE_DIR}/cmake/pkgconfig.cmake
${CMAKE_BINARY_DIR}/pkgconfig/${FORTARGET}.pc
)
install(
FILES ${CMAKE_BINARY_DIR}/pkgconfig/${FORTARGET}.pc
DESTINATION ${QT_LIBRARIES_PATH_INST}/pkgconfig
)
endif()
endmacro()
function(KATIE_GENERATE_STRING INSTR OUTSTR OUTSTR2)
if("${INSTR}" GREATER "536")
message(FATAL_ERROR "${OUTSTR} is greater than 536")
endif()
# qt used to do some magic, adding trailing \0 in a weird way via padstring script
set(${OUTSTR} "${INSTR}\\0" PARENT_SCOPE)
if(OUTSTR2)
string(REGEX REPLACE ".*${CMAKE_INSTALL_PREFIX}/" "" instpath ${INSTR})
set(${OUTSTR2} "${instpath}" PARENT_SCOPE)
endif()
endfunction()
# the purpose of this function is to ensure that (1) the output string is not
# null so that when it is passed to another function/macro it does not complain
# about inproper number of arguments and (2) it joins the input which if
# quoted has semicolons to it (if it is a list) that the sub-command
# (e.g. gcc) can not handle. that's a dirty hack to support gcc and clang at
# the same time along with custom target COMPILE_FLAGS/LINK_FLAGS without
# doing compiler checks all over the place. if anyone has a better solution
# I'll be glad to drop the function bellow!
function(KATIE_FIXUP_STRING INSTR OUTSTR)
string(STRIP "${INSTR}" instrtrimmed)
if("${instrtrimmed}" STREQUAL "")
set(${OUTSTR} " " PARENT_SCOPE)
else()
string(REPLACE ";" " " modstring "${INSTR}")
set(${OUTSTR} "${modstring}" PARENT_SCOPE)
endif()
endfunction()
macro(KATIE_CONFIG VAR VAL)
set(${VAR} ${VAL})
add_definitions(-D${VAR}=${VAL})
endmacro()
function(KATIE_SETUP_FLAGS)
katie_fixup_string("${KATIE_CXXFLAGS}" KATIE_CXXFLAGS)
katie_fixup_string("${KATIE_LDFLAGS}" KATIE_LDFLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KATIE_CXXFLAGS}" PARENT_SCOPE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${KATIE_LDFLAGS}" PARENT_SCOPE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${KATIE_LDFLAGS}" PARENT_SCOPE)
endfunction()
macro(KATIE_SETUP_SOURCES LSOURCES)
foreach(source ${LSOURCES} ${ARGN})
get_filename_component(sourcename ${source} NAME)
set(compileflags)
# TODO: sse4.1 and sse4.2 support, currently not needed
foreach(flag 3dnow avx mmx sse sse2 sse3 ssse3 iwmmxt neon)
string(REGEX MATCH "${flag}" flag_match ${sourcename})
if("${flag_match}" STREQUAL "neon")
if("${KATIE_ARCHITECTURE}" STREQUAL "arm")
set(compileflags "${compileflags} -mfpu=neon")
endif()
elseif("${flag_match}" STREQUAL "iwmmxt")
if("${KATIE_ARCHITECTURE}" STREQUAL "arm")
set(compileflags "${compileflags} -mcpu=iwmmxt")
endif()
elseif(flag_match)
set(compileflags "${compileflags} -m${flag_match}")
endif()
endforeach()
if(compileflags)
# message(STATUS "Setting up compile flags for: ${source} to: ${compileflags}")
set_source_files_properties(${source} PROPERTIES COMPILE_FLAGS "${compileflags}")
endif()
endforeach()
endmacro()
macro(KATIE_OPTIMIZE_HEADERS DIR)
find_program(unifdef NAMES unifdef)
if(unifdef)
install(
CODE "set(HEADERS_DIRECTORY \"${DIR}\")"
CODE "set(HEADERS_DEFINITIONS \"${ARGN}\")"
SCRIPT "${CMAKE_SOURCE_DIR}/cmake/modules/OptimizeHeaders.cmake"
)
else()
get_filename_component(basename ${DIR} NAME)
message(AUTHOR_WARNING "unifdef not instaled, cannot optimize headers for: ${basename}")
endif()
endmacro()

View file

@ -0,0 +1,117 @@
# Copyright (c) 2015, Ivailo Monev, <xakepa10@gmail.com>
# Redistribution and use is allowed according to the terms of the BSD license.
macro(KATIE_RESOURCES RESOURCES)
foreach(tmpres ${RESOURCES} ${ARGN})
get_filename_component(resource ${tmpres} ABSOLUTE)
get_source_file_property(skip ${resource} SKIP_RESOURCE)
if(skip)
continue()
endif()
get_filename_component(rscext ${resource} EXT)
get_filename_component(rscname ${resource} NAME_WE)
get_filename_component(rscpath ${resource} PATH)
string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" rscpath "${rscpath}")
make_directory(${rscpath})
if("${rscext}" STREQUAL ".ui")
set(rscout ${rscpath}/ui_${rscname}.h)
add_custom_command(
OUTPUT ${rscout}
COMMAND ${KATIE_UIC} "${resource}" -o "${rscout}"
MAIN_DEPENDENCY ${resource}
)
elseif("${rscext}" STREQUAL ".qrc")
set(rscout ${rscpath}/qrc_${rscname}.cpp)
add_custom_command(
OUTPUT ${rscout}
COMMAND ${KATIE_RCC} "${resource}" -o "${rscout}" -name "${rscname}"
MAIN_DEPENDENCY ${resource}
)
set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
elseif("${rscext}" MATCHES "(.h|.cpp)")
set(rscout ${rscpath}/moc_${rscname}${rscext})
get_directory_property(dirdefs COMPILE_DEFINITIONS)
get_directory_property(dirincs INCLUDE_DIRECTORIES)
set(mocargs)
foreach(ddef ${dirdefs})
# TODO: filter non -D, support -U too
set(mocargs ${mocargs} -D${ddef})
endforeach()
foreach(incdir ${dirincs})
set(mocargs ${mocargs} -I${incdir})
endforeach()
add_custom_command(
OUTPUT "${rscout}"
COMMAND "${KATIE_MOC}" -nw "${resource}" -o "${rscout}" ${mocargs}
)
set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
# XXX: this can be troublesome but common sources can cause multiple rules on the same file
set_source_files_properties(${resource} PROPERTIES SKIP_RESOURCE TRUE)
endif()
endforeach()
endmacro()
macro(KATIE_RESOURCE RESOURCES OUTNAME)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/qrc_${OUTNAME}.cpp)
add_custom_command(
OUTPUT "${rscout}"
COMMAND "${KATIE_RCC}" ${RESOURCES} -o "${rscout}" -name "${OUTNAME}"
# MAIN_DEPENDENCY ${resource}
)
foreach(tmpres ${RESOURCES})
set_property(SOURCE ${tmpres} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endforeach()
endmacro()
macro(KATIE_DBUS_ADAPTOR SRCDEP SRCIN SRCOUT)
if(${ARG4})
set(dbusxmlargs ${ARG4})
endif()
get_filename_component(resource ${SRCIN} ABSOLUTE)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.h)
set(mocout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.moc)
add_custom_command(
OUTPUT "${rscout}"
COMMAND "${KATIE_QDBUSXML2CPP}" -m "${resource}" -a "${rscout}" -p "${SRCOUT}" ${dbusxmlargs}
COMMAND "${KATIE_MOC}" -nw "${rscout}" -o "${mocout}" -i
)
set_property(SOURCE ${SRCDEP} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endmacro()
macro(KATIE_DBUS_INTERFACE SRCIN)
if(${ARG2})
set(dbusxmlargs ${ARG2})
endif()
string(REGEX MATCH ".*\\.(.*)\\.xml" ${SRCIN} SRCOUT)
string(TOLOWER ${SRCIN} SRCIN)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}ineterface.h)
add_custom_command(
OUTPUT "${rscout}"
COMMAND "${KATIE_QDBUSXML2CPP}" -m "${SRCIN}" -a "${rscout}" -p "${SRCOUT}ineterface" ${dbusxmlargs}
)
set_property(SOURCE ${SRCIN} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endmacro()
macro(KATIE_TRANSLATIONS TRANSLATIONS)
if(NOT QT_TRANSLATIONS_PATH_INST)
message(SEND_ERROR "Directory where the translation should be installed is not set")
endif()
foreach(translation ${TRANSLATIONS} ${ARGN})
get_filename_component(trname ${translation} NAME_WE)
get_filename_component(trdir ${translation} DIRECTORY)
string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" trdir ${trdir})
make_directory(${trdir})
set(trout ${trdir}/${trname}.qm)
add_custom_target(
${trname}_translation ALL
COMMAND "${KATIE_LRELEASE}" "${translation}" -qm "${trout}"
)
file(WRITE ${trout} "This file exists only to keep the CMake logic straight")
install(FILES ${trout} DESTINATION ${QT_TRANSLATIONS_PATH_INST})
endforeach()
endmacro()
macro(KATIE_DEFINITION DEF)
set(KATIE_DEFINITIONS ${KATIE_DEFINITIONS} ${DEF})
add_definitions(${DEF} ${ARGN})
endmacro()

View file

@ -0,0 +1,47 @@
# this module defines two macros:
# MACRO_PUSH_REQUIRED_VARS()
# and
# MACRO_POP_REQUIRED_VARS()
# use these if you call cmake macros which use
# any of the CMAKE_REQUIRED_XXX variables
#
# Usage:
# MACRO_PUSH_REQUIRED_VARS()
# SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -DSOME_MORE_DEF)
# CHECK_FUNCTION_EXISTS(...)
# MACRO_POP_REQUIRED_VARS()
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
MACRO(MACRO_PUSH_REQUIRED_VARS)
IF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER)
SET(_PUSH_REQUIRED_VARS_COUNTER 0)
ENDIF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER)
MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}+1")
SET(_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_INCLUDES})
SET(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS})
SET(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_LIBRARIES})
SET(_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_FLAGS})
ENDMACRO(MACRO_PUSH_REQUIRED_VARS)
MACRO(MACRO_POP_REQUIRED_VARS)
# don't pop more than we pushed
IF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0")
SET(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
SET(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
SET(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
SET(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}-1")
ENDIF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0")
ENDMACRO(MACRO_POP_REQUIRED_VARS)

View file

@ -0,0 +1,10 @@
# HEADERS_DIRECTORY and HEADERS_DEFINITIONS origin from the macro call
file(GLOB headers "$ENV{DESTDIR}/${HEADERS_DIRECTORY}/*.h")
message(STATUS "Optimizing header in: $ENV{DESTDIR}/${HEADERS_DIRECTORY}")
foreach(header ${headers})
execute_process(
COMMAND unifdef -UQT_BOOTSTRAPPED ${HEADERS_DEFINITIONS} "${header}" -o "${header}"
)
endforeach()

11
cmake/pkgconfig.cmake Normal file
View file

@ -0,0 +1,11 @@
prefix=${CMAKE_INSTALL_PREFIX}
exec_prefix=${CMAKE_INSTALL_PREFIX}
libdir=${QT_LIBRARIES_PATH}
includedir=${QT_HEADERS_PATH}/${PACKAGE_FAKE}
Name: ${PACKAGE_NAME}
Description: ${PACKAGE_NAME} Library
Version: ${KATIE_VERSION}
Libs: -L${QT_LIBRARIES_PATH} ${PACKAGE_LIBRARIES}
Cflags: ${PACKAGE_CFLAGS} -I${QT_HEADERS_PATH} -I${QT_HEADERS_PATH}/${PACKAGE_FAKE}
Requires: ${PACKAGE_REQUIRES}

2362
doxygen.conf Normal file

File diff suppressed because it is too large Load diff

40
header.BSD Normal file
View file

@ -0,0 +1,40 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

27
header.FDL Normal file
View file

@ -0,0 +1,27 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

41
header.LGPL Normal file
View file

@ -0,0 +1,41 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

33
header.LGPL21 Normal file
View file

@ -0,0 +1,33 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/

36
header.LGPL3 Normal file
View file

@ -0,0 +1,36 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or later as published by the Free
** Software Foundation and appearing in the file LICENSE.GPL included in
** the packaging of this file. Please review the following information to
** ensure the GNU General Public License version 2.0 requirements will be
** met: http://www.gnu.org/licenses/gpl-2.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

120
mkspecs/aix/qplatformdefs.h Normal file
View file

@ -0,0 +1,120 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef Q_AIX_QPLATFORMDEFS_H
#define Q_AIX_QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
// uncomment if you have problems with <sys/proc.h> because your gcc
// hasn't been built on exactly the same OS version your are using now.
// typedef int crid_t;
// typedef unsigned int class_id_t;
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <dlfcn.h>
#include <strings.h> // AIX X11 headers define FD_ZERO using bzero()
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/select.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
// Only AIX 4.3 and better support 64-bit
#define QT_USE_XOPEN_LFS_EXTENSIONS
#include "common/mkspecs_posix.h"
#undef QT_SOCKLEN_T
#ifdef _AIX43
// AIX 4.3 and better
#define QT_SOCKLEN_T socklen_t
#elif _AIX42
// AIX 4.2
#define QT_SOCKLEN_T size_t
#else
// AIX 4.1
#define QT_SOCKLEN_T size_t
// override
#define QT_SOCKOPTLEN_T int
#endif
#ifdef QT_LARGEFILE_SUPPORT
#undef QT_DIR
#undef QT_OPENDIR
#undef QT_CLOSEDIR
#define QT_DIR DIR64
#define QT_OPENDIR ::opendir64
#define QT_CLOSEDIR ::closedir64
#endif
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500)
// AIX 4.3 and better
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif
#endif // include guard

View file

@ -0,0 +1,25 @@
#
# qmake configuration for blackberry x86 systems
#
include(../qnx-armv7le-qcc/qmake.conf)
load(qt_config)
DEFINES += Q_OS_BLACKBERRY
CONFIG += blackberry
LIBS += -lbps
# Blackberry also has support for stack smashing protection in its libc
contains(QT_CONFIG, stack-protector-strong) {
QMAKE_CFLAGS += -fstack-protector-strong
QMAKE_CXXFLAGS += -fstack-protector-strong
} else {
QMAKE_CFLAGS += -fstack-protector -fstack-protector-all
QMAKE_CXXFLAGS += -fstack-protector -fstack-protector-all
}
QMAKE_CFLAGS += -mcpu=cortex-a9
QMAKE_CXXFLAGS += -mcpu=cortex-a9
QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now

View file

@ -0,0 +1,114 @@
/****************************************************************************
**
** Copyright (C) 2012 Research In Motion Limited. <blackberry-qt@qnx.com>
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
#define __STDC_CONSTANT_MACROS
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
// QNX doesn't have the System V <sys/shm.h> header. This is not a standard
// POSIX header, it's only documented in the Single UNIX Specification.
// The preferred POSIX compliant way to share memory is to use the functions
// in <sys/mman.h> that comply with the POSIX Real Time Interface (1003.1b).
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
// for htonl
#include <arpa/inet.h>
#define QT_USE_XOPEN_LFS_EXTENSIONS
#if defined(__EXT_QNX__READDIR_R) && !defined(__EXT_QNX__READDIR64_R)
#define QT_NO_READDIR64
#endif
#include "../common/posix/qplatformdefs.h"
#if defined(__EXT_QNX__READDIR64_R)
#define QT_EXT_QNX_READDIR_R ::_readdir64_r
#elif defined(__EXT_QNX__READDIR_R)
#define QT_EXT_QNX_READDIR_R ::_readdir_r
#endif
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
// QNX6 doesn't have getpagesize()
inline int getpagesize()
{
return ::sysconf(_SC_PAGESIZE);
}
#include <stdlib.h>
#define QT_QWS_TEMP_DIR QString::fromLatin1(qgetenv("TMP"))
#define QT_NO_QWS_INPUTMETHODS
#define QT_QPA_DEFAULT_PLATFORM_NAME "blackberry"
#endif // QPLATFORMDEFS_H

View file

@ -0,0 +1,56 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef Q_C89_QPLATFORMDEFS_H
#define Q_C89_QPLATFORMDEFS_H
// #include <stdio.h>
#define QT_FPOS_T fpos_t
#define QT_OFF_T long
#define QT_FOPEN ::fopen
#define QT_FSEEK ::fseek
#define QT_FTELL ::ftell
#define QT_FGETPOS ::fgetpos
#define QT_FSETPOS ::fsetpos
#endif // include guard

View file

@ -0,0 +1,164 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef Q_POSIX_QPLATFORMDEFS_H
#define Q_POSIX_QPLATFORMDEFS_H
#include <signal.h>
#include <sys/types.h>
#ifndef QT_NO_SOCKET_H
# include <sys/socket.h>
#endif
#include <sys/stat.h>
#if defined(QT_USE_XOPEN_LFS_EXTENSIONS) && defined(QT_LARGEFILE_SUPPORT)
#define QT_STATBUF struct stat64
#define QT_FPOS_T fpos64_t
#define QT_OFF_T off64_t
#define QT_STAT ::stat64
#define QT_LSTAT ::lstat64
#define QT_TRUNCATE ::truncate64
// File I/O
#define QT_OPEN ::open64
#define QT_LSEEK ::lseek64
#define QT_FSTAT ::fstat64
#define QT_FTRUNCATE ::ftruncate64
// Standard C89
#define QT_FOPEN ::fopen64
#define QT_FSEEK ::fseeko64
#define QT_FTELL ::ftello64
#define QT_FGETPOS ::fgetpos64
#define QT_FSETPOS ::fsetpos64
#define QT_MMAP ::mmap64
#else // !defined(QT_USE_XOPEN_LFS_EXTENSIONS) || !defined(QT_LARGEFILE_SUPPORT)
#include "common/mkspecs_c89.h"
#define QT_STATBUF struct stat
#define QT_STAT ::stat
#define QT_LSTAT ::lstat
#define QT_TRUNCATE ::truncate
// File I/O
#define QT_OPEN ::open
#define QT_LSEEK ::lseek
#define QT_FSTAT ::fstat
#define QT_FTRUNCATE ::ftruncate
// Posix extensions to C89
#if !defined(QT_USE_XOPEN_LFS_EXTENSIONS) && !defined(QT_NO_USE_FSEEKO)
#undef QT_OFF_T
#undef QT_FSEEK
#undef QT_FTELL
#define QT_OFF_T off_t
#define QT_FSEEK ::fseeko
#define QT_FTELL ::ftello
#endif
#define QT_MMAP ::mmap
#endif // !defined (QT_USE_XOPEN_LFS_EXTENSIONS) || !defined(QT_LARGEFILE_SUPPORT)
#define QT_STAT_MASK S_IFMT
#define QT_STAT_REG S_IFREG
#define QT_STAT_DIR S_IFDIR
#define QT_STAT_LNK S_IFLNK
#define QT_ACCESS ::access
#define QT_GETCWD ::getcwd
#define QT_CHDIR ::chdir
#define QT_MKDIR ::mkdir
#define QT_RMDIR ::rmdir
// File I/O
#define QT_CLOSE ::close
#define QT_READ ::read
#define QT_WRITE ::write
#define QT_OPEN_LARGEFILE O_LARGEFILE
#define QT_OPEN_RDONLY O_RDONLY
#define QT_OPEN_WRONLY O_WRONLY
#define QT_OPEN_RDWR O_RDWR
#define QT_OPEN_CREAT O_CREAT
#define QT_OPEN_TRUNC O_TRUNC
#define QT_OPEN_APPEND O_APPEND
// Posix extensions to C89
#define QT_FILENO fileno
// Directory iteration
#define QT_DIR DIR
#define QT_OPENDIR ::opendir
#define QT_CLOSEDIR ::closedir
#if defined(QT_LARGEFILE_SUPPORT) \
&& defined(QT_USE_XOPEN_LFS_EXTENSIONS) \
&& !defined(QT_NO_READDIR64)
#define QT_DIRENT struct dirent64
#define QT_READDIR ::readdir64
#define QT_READDIR_R ::readdir64_r
#else
#define QT_DIRENT struct dirent
#define QT_READDIR ::readdir
#define QT_READDIR_R ::readdir_r
#endif
#define QT_SOCKLEN_T socklen_t
#define QT_SOCKET_CONNECT ::connect
#define QT_SOCKET_BIND ::bind
#define QT_SIGNAL_RETTYPE void
#define QT_SIGNAL_ARGS int
#define QT_SIGNAL_IGNORE SIG_IGN
#endif // include guard

View file

@ -0,0 +1,8 @@
set(KATIE_LDFLAGS
${KATIE_LDFLAGS}
-headerpad_max_install_names
-current_version" "
-compatibility_version" "
)
add_definitions(-D__USE_WS_X11__)

View file

@ -0,0 +1,85 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#include "common/mkspecs_posix.h"
#undef QT_OPEN_LARGEFILE
#define QT_OPEN_LARGEFILE 0
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif // QPLATFORMDEFS_H

View file

@ -0,0 +1,19 @@
set(KATIE_CXXFLAGS
${KATIE_CXXFLAGS}
-pthread
)
add_definitions(-D_THREAD_SAFE)
set(QT_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")
set(QT_HEADERS_PATH "${QT_PREFIX_PATH}/include/katie")
set(QT_LIBRARIES_PATH "${QT_PREFIX_PATH}/lib/katie")
set(QT_BINARIES_PATH "${QT_LIBRARIES_PATH}/bin")
set(QT_PLUGINS_PATH "${QT_LIBRARIES_PATH}/plugins")
set(QT_IMPORTS_PATH "${QT_LIBRARIES_PATH}/imports")
set(QT_DATA_PATH "${QT_PREFIX_PATH}/share")
set(QT_TRANSLATIONS_PATH "${QT_DATA_PATH}/translations")
set(QT_DOCUMENTATION_PATH "${QT_DATA_PATH}/doc")
set(QT_EXAMPLES_PATH "${QT_DATA_PATH}/examples")
set(QT_DEMOS_PATH "${QT_DATA_PATH}/demos")
set(QT_SETTINGS_PATH "/etc/xdg")

View file

@ -0,0 +1,88 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <dlfcn.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#include "common/mkspecs_posix.h"
#undef QT_OPEN_LARGEFILE
#define QT_OPEN_LARGEFILE 0
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif // QPLATFORMDEFS_H

View file

@ -0,0 +1,54 @@
#
# Base qmake configuration for integrity-ghs
#
MAKEFILE_GENERATOR = GBUILD
TEMPLATE = app
CONFIG += qt warn_on release integrity unix
QT += core gui network
DEFINES += QT_NO_SHAREDMEMORY QT_NO_PROCESS QT_NO_QWS_MULTIPROCESS QT_NO_SYSTEMSEMAPHORE QT_NO_PRINTER QT_NO_QWS_QPF2
QMAKE_CFLAGS = -bsp $$INTEGRITY_BSP -os_dir $__OS_DIR
QMAKE_CFLAGS += --diag_suppress=1,228,236,381,611,997,1795
QMAKE_CFLAGS_WARN_ON =
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -g -Ospeed -Olink --signed_fields --no_commons
QMAKE_CFLAGS_DEBUG = -g --no_commons --signed_fields
QMAKE_CFLAGS_SHLIB =
QMAKE_CFLAGS_THREAD = -D_REENTRANT
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS --no_implicit_include --link_once_templates -non_shared
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_INCDIR =
QMAKE_LIBDIR =
QMAKE_INCDIR_X11 =
QMAKE_LIBDIR_X11 =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL =
QMAKE_LIBDIR_OPENGL =
QMAKE_INCDIR_QTOPIA = $(QPEDIR)/include
QMAKE_LIBDIR_QTOPIA = $(QPEDIR)/lib
QMAKE_LFLAGS = -lposix -livfs -lnet -lsocket -lfbdev -lhiddev -ldl
QMAKE_LFLAGS_RELEASE = -g -Ospeed -Olink --no_commons -non_shared --link_once_templates
QMAKE_LFLAGS_DEBUG = -g --no_commons -non_shared --link_once_templates
QMAKE_LFLAGS_SHLIB =
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME =
QMAKE_LFLAGS_THREAD =
QMAKE_LFLAGS_RPATH =
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 =
QMAKE_LIBS_X11SM =
QMAKE_LIBS_QTOPIA =
QMAKE_LIBS_THREAD =

View file

@ -0,0 +1,201 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <dlfcn.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#ifdef QT_LARGEFILE_SUPPORT
#define QT_STATBUF struct stat64
#define QT_STATBUF4TSTAT struct stat64
#define QT_STAT ::stat64
#define QT_FSTAT ::fstat64
#define QT_LSTAT ::lstat64
#define QT_OPEN ::open64
#define QT_TRUNCATE ::truncate64
#define QT_FTRUNCATE ::ftruncate64
#define QT_LSEEK ::lseek64
#else
#define QT_STATBUF struct stat
#define QT_STATBUF4TSTAT struct stat
#define QT_STAT ::stat
#define QT_FSTAT ::fstat
#define QT_LSTAT ::lstat
#define QT_OPEN ::open
#define QT_TRUNCATE ::truncate
#define QT_FTRUNCATE ::ftruncate
#define QT_LSEEK ::lseek
#define QT_OPEN_LARGEFILE 0
#endif
#ifdef QT_LARGEFILE_SUPPORT
#define QT_FOPEN ::fopen64
#define QT_FSEEK ::fseeko64
#define QT_FTELL ::ftello64
#define QT_FGETPOS ::fgetpos64
#define QT_FSETPOS ::fsetpos64
#define QT_FPOS_T fpos64_t
#define QT_OFF_T off64_t
#else
#define QT_FOPEN ::fopen
#define QT_FSEEK ::fseek
#define QT_FTELL ::ftell
#define QT_FGETPOS ::fgetpos
#define QT_FSETPOS ::fsetpos
#define QT_FPOS_T fpos_t
#define QT_OFF_T long
#endif
#define QT_STAT_REG S_IFREG
#define QT_STAT_DIR S_IFDIR
#define QT_STAT_MASK S_IFMT
#define QT_STAT_LNK S_IFLNK
#define QT_SOCKET_CONNECT ::connect
#define QT_SOCKET_BIND ::bind
#define QT_FILENO fileno
#ifndef QT_CLOSE
#define QT_CLOSE ::close
#endif
#ifndef QT_READ
#define QT_READ ::read
#endif
#ifndef QT_WRITE
#define QT_WRITE ::write
#endif
#define QT_ACCESS ::access
#define QT_GETCWD ::getcwd
#define QT_CHDIR ::chdir
#define QT_MKDIR ::mkdir
#define QT_RMDIR ::rmdir
#define QT_OPEN_RDONLY O_RDONLY
#define QT_OPEN_WRONLY O_WRONLY
#define QT_OPEN_RDWR O_RDWR
#define QT_OPEN_CREAT O_CREAT
#define QT_OPEN_TRUNC O_TRUNC
#define QT_OPEN_APPEND O_APPEND
#define QT_SIGNAL_RETTYPE void
#define QT_SIGNAL_ARGS int
#define QT_SIGNAL_IGNORE SIG_IGN
#define QT_MMAP ::mmap
// Directory iteration
#define QT_DIR DIR
#define QT_OPENDIR ::opendir
#define QT_CLOSEDIR ::closedir
#if defined(QT_LARGEFILE_SUPPORT) \
&& defined(QT_USE_XOPEN_LFS_EXTENSIONS) \
&& !defined(QT_NO_READDIR64)
# define QT_DIRENT struct dirent64
# define QT_READDIR ::readdir64
# define QT_READDIR_R ::readdir64_r
#else
# define QT_DIRENT struct dirent
# define QT_READDIR ::readdir
# define QT_READDIR_R ::readdir_r
#endif
#define QT_SOCKLEN_T socklen_t
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif
#ifndef MAXNAMLEN
# define MAXNAMLEN NAME_MAX
#endif
#ifndef PATH_MAX
# define PATH_MAX MAXPATHLEN
#endif
#ifndef NSIG
# define NSIG _SIGMAX
#endif
#ifndef MAP_ANON
# define MAP_ANON 0
#endif
typedef void (*sighandler_t)(int);
#ifndef QT_NO_MMAP
# define QT_NO_MMAP
#endif
#ifndef QT_NO_SHAREDMEMORY
# define QT_NO_SHAREDMEMORY
#endif
#ifndef QT_NO_SYSTEMSEMAPHORE
# define QT_NO_SYSTEMSEMAPHORE
#endif

43
mkspecs/ios/GLES/gl.h Normal file
View file

@ -0,0 +1,43 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <OpenGLES/ES1/gl.h>
#include <OpenGLES/ES1/glext.h>

43
mkspecs/ios/GLES2/gl2.h Normal file
View file

@ -0,0 +1,43 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <OpenGLES/ES2/gl.h>
#include <OpenGLES/ES2/glext.h>

84
mkspecs/ios/arch.conf Normal file
View file

@ -0,0 +1,84 @@
#
# Helper to set CPU architecture flags for iOS configurations
#
# Depends on:
#
# QMAKE_IPHONEOS_DEPLOYMENT_TARGET - set in mkspecs/common/ios/versions.conf
#
# Note:
#
# Must be included after load(qt_config) in mkspec for auto-detection based
# on GL/ES version (GL/ES 2.x implies armv7 on iOS).
#
# Target architecture for iOS devices (armv6, armv7 or leave blank for default)
QMAKE_IOS_TARGET_ARCH =
###########################################################################
# Device?
!*simulator* {
# Let mkspec specify archictecture
*armv6*: QMAKE_IOS_TARGET_ARCH = armv6
else:*armv7*: QMAKE_IOS_TARGET_ARCH = armv7
# ARMv7 architecture device (see below) is required for OpenGL/ES 2.x
isEmpty(QMAKE_IOS_TARGET_ARCH):contains(QT_CONFIG, opengles2): QMAKE_IOS_TARGET_ARCH = armv7
# No target architecture specified?
isEmpty(QMAKE_IOS_TARGET_ARCH) {
# iOS versions < 4.3 can be armv6 or armv7, so need armv6 for max. compatibility,
# assume that building for OpenGL/ES 1.x is targeting armv6
lessThan(QMAKE_IPHONEOS_DEPLOYMENT_TARGET, "4.3")|contains(QT_CONFIG, opengles1) {
QMAKE_IOS_TARGET_ARCH = armv6
} else: QMAKE_IOS_TARGET_ARCH = armv7
}
# Samsung S5PC100, Apple A4, A5, A5X
equals(QMAKE_IOS_TARGET_ARCH, "armv7") {
# iOS CPU architecture (armv7)
QMAKE_IOS_ARM_ARCH = __ARM_ARCH_7__
# Thumb2 instructions
QMAKE_IOS_ARM_FLAGS = -mthumb
QMAKE_IOS_ARM_ARCH += __MARM_THUMB__
# NEON instructions
*-g++*: QMAKE_IOS_ARM_FLAGS += -mfloat-abi=softfp -mfpu=neon
QMAKE_IOS_ARM_ARCH += __ARM_NEON__
} else {
# Samsung S5L8900
if(equals(QMAKE_IOS_TARGET_ARCH, "armv6")) {
# iOS CPU architecture (armv6)
QMAKE_IOS_ARM_ARCH = __ARM_ARCH_6__
# ARM instructions
QMAKE_IOS_ARM_FLAGS = -marm -mcpu=arm1176jzf-s
!*clang*: QMAKE_IOS_ARM_FLAGS += -march=armv6
} else {
# Unsupported architecture
error("Invalid iOS target $${QMAKE_IOS_TARGET_ARCH}! Edit mkspecs/common/ios/arch.conf to specify target architecture.")
}
}
# Simulator is i386 only
} else: QMAKE_IOS_TARGET_ARCH = i386
# iOS architecture build flags
QMAKE_IOS_ARCH_FLAGS = -arch $$QMAKE_IOS_TARGET_ARCH
QMAKE_CFLAGS += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_LFLAGS += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_IOS_TARGET_ARCH =
QMAKE_IOS_ARCH_FLAGS =
# Architecture specific defines/flags
!*simulator* {
DEFINES += $$QMAKE_IOS_ARM_ARCH
QMAKE_IOS_ARM_ARCH =
QMAKE_CFLAGS += $$QMAKE_IOS_ARM_FLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_ARM_FLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_ARM_FLAGS
QMAKE_IOS_ARM_FLAGS =
}

51
mkspecs/ios/clang.conf Normal file
View file

@ -0,0 +1,51 @@
#
# compiler settings for iOS clang compilers
#
# Depends on:
#
# QMAKE_IOS_XCODE_VERSION - set in mkspecs/common/ios/versions.conf
#
# iOS build flags
QMAKE_IOS_CFLAGS = -fvisibility=hidden -fpascal-strings -fmessage-length=0
QMAKE_IOS_CFLAGS += -Wno-trigraphs -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter
QMAKE_IOS_CFLAGS += -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -Wno-sign-conversion
QMAKE_IOS_CXXFLAGS = -fvisibility-inlines-hidden
QMAKE_IOS_OBJ_CFLAGS = -Wno-arc-abi -Wc++0x-extensions
# Device or simulator specific flags
*simulator* {
QMAKE_IOS_CFLAGS += -fexceptions -fasm-blocks
QMAKE_IOS_OBJ_CFLAGS += -fobjc-abi-version=2 -fobjc-legacy-dispatch
}
# Compiler version-specific flags
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
# Clang 3.1 flags (will be used for later versions too)
QMAKE_IOS_CFLAGS += -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-implicit-atomic-properties
QMAKE_IOS_CFLAGS += -Wformat -Wno-missing-braces -Wno-unused-function -Wno-unused-label -Wuninitialized
QMAKE_IOS_CFLAGS += -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wpointer-sign
QMAKE_IOS_CFLAGS += -Wno-newline-eof -Wdeprecated-declarations -Winvalid-offsetof -Wno-conversion
QMAKE_IOS_CXXFLAGS += -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wc++11-extensions
QMAKE_IOS_OBJ_CFLAGS += -Wno-deprecated-implementations -Wprotocol -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector
# Warn about unsupported (later than 4.5) Xcode versions
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.6"): warning("The version of Xcode installed on this system is not recognised - custom compiler settings may be necessary")
} else {
if (!lessThan(QMAKE_IOS_XCODE_VERSION, "4.2")) {
# Clang 3.0 flags
QMAKE_IOS_CFLAGS += -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits
} else {
# Older Clang versions are not supported
error("Unsupported Xcode version $${QMAKE_IOS_XCODE_VERSION}")
}
}
# Set build flags
QMAKE_CFLAGS += $$QMAKE_IOS_CFLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS $$QMAKE_IOS_OBJ_CFLAGS
QMAKE_IOS_CFLAGS =
QMAKE_IOS_CXXFLAGS =
QMAKE_IOS_OBJ_CFLAGS =

21
mkspecs/ios/g++.conf Normal file
View file

@ -0,0 +1,21 @@
#
# compiler settings for iOS g++ compilers
#
# iOS build flags
QMAKE_IOS_CFLAGS = -fvisibility=hidden -fexceptions -fmessage-length=0
QMAKE_IOS_CFLAGS += -Wno-trigraphs -Wreturn-type -Wunused-variable
QMAKE_IOS_CXXFLAGS = -fvisibility-inlines-hidden
# Device or simulator specific flags
!*simulator*: QMAKE_IOS_OBJ_CFLAGS =
else: QMAKE_IOS_OBJ_CFLAGS = -fobjc-abi-version=2 -fobjc-legacy-dispatch
# Set build flags
QMAKE_CFLAGS += $$QMAKE_IOS_CFLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS $$QMAKE_IOS_OBJ_CFLAGS
QMAKE_IOS_CFLAGS =
QMAKE_IOS_CXXFLAGS =
QMAKE_IOS_OBJ_CFLAGS =

View file

@ -0,0 +1,33 @@
#
# Base qmake configuration for GCC on iOS
#
# Before making changes to this file, please read the comment in
# gcc-base.conf, to make sure the change goes in the right place.
#
# To verify that your change has the desired effect on the final configuration
# you can use the manual test in tests/manual/mkspecs.
#
include(gcc-base.conf)
QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4
QMAKE_CFLAGS_DWARF2 += -gdwarf-2
QMAKE_CXXFLAGS_DWARF2 += $$QMAKE_CFLAGS_DWARF2
QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS
QMAKE_OBJECTIVE_CFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_OBJECTIVE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_OBJECTIVE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
QMAKE_LFLAGS += -headerpad_max_install_names
QMAKE_LFLAGS_SHLIB += -single_module -dynamiclib
QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_INCREMENTAL += -undefined suppress -flat_namespace
QMAKE_LFLAGS_SONAME += -install_name$${LITERAL_WHITESPACE}@executable_path/
QMAKE_LFLAGS_VERSION += -current_version$${LITERAL_WHITESPACE}
QMAKE_LFLAGS_COMPAT_VERSION += -compatibility_version$${LITERAL_WHITESPACE}

21
mkspecs/ios/ios.conf Normal file
View file

@ -0,0 +1,21 @@
#
# qmake common configuration for iOS
#
MAKEFILE_GENERATOR = UNIX
TEMPLATE = app
CONFIG += qt ios warn_on release reduce_exports incremental global_init_link_order lib_version_first plugin_no_soname link_prl
QT += core gui opengl
QMAKE_INCREMENTAL_STYLE = sublib
# Qt can't build iOS app bundle :(
CONFIG -= app_bundle
# Not deploying to Mac OSX
QMAKE_MACOSX_DEPLOYMENT_TARGET =
# Add iOS common folder to include path
INCLUDEPATH += $$PWD/ios
# iOS defines
DEFINES += DARWIN_NO_CARBON Q_OS_IOS QT_NO_QWS_QPF QT_NO_QWS_QPF2 QT_NO_QWS_INPUTMETHODS QT_NO_PRINTER QT_NO_PRINTDIALOG

31
mkspecs/ios/llvm.conf Normal file
View file

@ -0,0 +1,31 @@
#
# compiler settings for iOS llvm-g++ compilers
#
# Depends on:
#
# QMAKE_IOS_XCODE_VERSION - set in mkspecs/common/ios/versions.conf
#
# iOS build flags
QMAKE_IOS_CFLAGS = -fvisibility=hidden -fpascal-strings -fmessage-length=0
QMAKE_IOS_CFLAGS += -Wno-trigraphs -Wreturn-type -Wunused-variable
QMAKE_IOS_CXXFLAGS = -fvisibility-inlines-hidden
# Device or simulator specific flags
!*simulator*: QMAKE_IOS_OBJ_CFLAGS =
else: QMAKE_IOS_OBJ_CFLAGS = -fobjc-abi-version=2 -fobjc-legacy-dispatch
# Compiler version specific flags
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
# Xcode 4.3+ specific flags
QMAKE_IOS_CFLAGS += -Wuninitialized
}
# Set build flags
QMAKE_CFLAGS += $$QMAKE_IOS_CFLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS $$QMAKE_IOS_OBJ_CFLAGS
QMAKE_IOS_CFLAGS =
QMAKE_IOS_CXXFLAGS =
QMAKE_IOS_OBJ_CFLAGS =

66
mkspecs/ios/qmake.conf Normal file
View file

@ -0,0 +1,66 @@
#
# Common build settings for all iOS configurations
#
# Depends on:
#
# QMAKE_IOS_XCODE_VERSION - set in mkspecs/common/ios/versions.conf
# QMAKE_IOS_SDK_VERSION - set in mkspecs/common/ios/versions.conf
# QMAKE_IOSSIMULATOR_SDK_VERSION - set in mkspecs/common/ios/versions.conf
#
# iOS SDK device type
!*simulator*: QMAKE_IOS_DEVICE_TYPE = iPhoneOS
else {
QMAKE_IOS_DEVICE_TYPE = iPhoneSimulator
# Use simulator SDK version
QMAKE_IOS_SDK_VERSION = $$QMAKE_IOS_SIMULATOR_SDK_VERSION
QMAKE_IOS_SIMULATOR_SDK_VERSION =
}
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
# Xcode 4.3+ is stored in /Applications
QMAKE_IOS_XCODE_PATH = /Applications/Xcode.app/Contents
} else: QMAKE_IOS_XCODE_PATH =
# iOS platform /Developer path
QMAKE_IOS_DEV_PATH = $$QMAKE_IOS_XCODE_PATH/Developer/Platforms/$${QMAKE_IOS_DEVICE_TYPE}.platform/Developer
QMAKE_IOS_XCODE_PATH =
# iOS platform SDK path
QMAKE_IOS_SDK = $$QMAKE_IOS_DEV_PATH/SDKs/$${QMAKE_IOS_DEVICE_TYPE}$${QMAKE_IOS_SDK_VERSION}.sdk
QMAKE_IOS_DEV_PATH =
QMAKE_IOS_DEVICE_TYPE =
QMAKE_CFLAGS += -isysroot $$QMAKE_IOS_SDK
QMAKE_CXXFLAGS += -isysroot $$QMAKE_IOS_SDK
QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_IOS_SDK
QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_IOS_SDK
QMAKE_IOS_SDK =
# Basic iOS frameworks needed for any GUI app
QMAKE_LFLAGS += -framework Foundation -framework UIKit -framework QuartzCore -lz
# OpenGL ES1
QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_IOS_SDK/System/Library/Frameworks/OpenGLES.framework/Headers
QMAKE_LIBDIR_OPENGL_ES1 =
QMAKE_LIBS_OPENGL_ES1 = -framework OpenGLES
# OpenGL ES2
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_IOS_SDK/System/Library/Frameworks/OpenGLES.framework/Headers
QMAKE_LIBDIR_OPENGL_ES2 =
QMAKE_LIBS_OPENGL_ES2 = -framework OpenGLES
# No desktop OpenGL
QMAKE_INCDIR_OPENGL =
QMAKE_LIBS_OPENGL =
QMAKE_LIBS_OPENGL_QT =
# Compiler-specific flags
!*-g++* {
# Objective-C/C++ precompile flags
QMAKE_OBJCFLAGS_PRECOMPILE = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
}

View file

@ -0,0 +1,97 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#define QT_NO_LIBRARY_UNLOAD
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#include "common/mkspecs_posix.h"
#undef QT_OPEN_LARGEFILE
#undef QT_SOCKLEN_T
#undef QT_SIGNAL_IGNORE
#define QT_OPEN_LARGEFILE 0
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
#define QT_SOCKLEN_T socklen_t
#else
#define QT_SOCKLEN_T int
#endif
#define QT_SIGNAL_IGNORE (void (*)(int))1
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif // QPLATFORMDEFS_H

184
mkspecs/ios/versions.conf Normal file
View file

@ -0,0 +1,184 @@
#
# Helper to set build tool & SDK versions for iOS configurations
#
# This file sets up the following configuration variables:
#
# QMAKE_IOS_XCODE_VERSION - version number of Xcode being used
# QMAKE_IOS_SDK_VERSION - version number of iOS device SDK
# QMAKE_IOS_SIMULATOR_SDK_VERSION - version number of iOS simulator SDK
#
# Used in:
#
# mkspecs/common/ios/clang.conf
# mkspecs/common/ios/llvm.conf
# mkspecs/common/ios/qmake.conf
# mkspecs/unsupported/macx-iosdevice-clang-legacy/qmake.conf
# mkspecs/unsupported/macx-iosdevice-clang/qmake.conf
# mkspecs/unsupported/macx-iosdevice-llvm-legacy/qmake.conf
# mkspecs/unsupported/macx-iosdevice-llvm/qmake.conf
# mkspecs/unsupported/macx-iosdevice-g++-legacy/qmake.conf
# mkspecs/unsupported/macx-iossimulator-llvm-legacy/qmake.conf
# mkspecs/unsupported/macx-iossimulator-llvm/qmake.conf
# mkspecs/unsupported/macx-iossimulator-g++-legacy/qmake.conf
#
#
# IMPORTANT:
#
# Xcode versions <= 4.2.x must be installed in /Developer.
# Xcode versions >= 4.3.x must be installed in /Applications
#
# Xcode versions >= 4.10 & < 5.0 and versions >= 10.0 are not supported due to
# the way the version checks are done here. As Apple (so far) has not used
# minor version numbers greater than 3 for Xcode, and the Xcode major version
# has only changed three times in the period 2003-2012, this is viewed as an
# acceptable limitation.
#
#
# Edit values below to match iOS build environment, or leave blank for
# autodetection (slower!)
#
# Xcode version used for cross-compiling
QMAKE_IOS_XCODE_VERSION =
# iOS SDK version used for cross-compiling for iOS devices
QMAKE_IOS_SDK_VERSION =
# iOS SDK version used for cross-compiling for the iOS simulator
QMAKE_IOS_SIMULATOR_SDK_VERSION =
#
# Do not edit values below here if using a pre-built SDK
#
# Minimum iOS version required on deployment target (if not specified, will
# default to minimum version that guarantees ARMv7 & OpenGL/ES 2.x).
#
# No part of Qt or any known plugin uses features that require iOS versions
# later than 4.0.
QMAKE_IPHONEOS_DEPLOYMENT_TARGET = 4.0
###########################################################################
# No Xcode version specified?
isEmpty(QMAKE_IOS_XCODE_VERSION) {
# Get version string from installed Xcode
exists(/Applications/Xcode.app/Contents/Developer) {
QMAKE_IOS_XCODE_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version)
} else: QMAKE_IOS_XCODE_INFO = $$system(/Developer/usr/bin/xcodebuild -version)
# Extract Xcode version number from output
QMAKE_IOS_XCODE_VERSION = $$member(QMAKE_IOS_XCODE_INFO, 1)
QMAKE_IOS_XCODE_INFO =
}
# Make sure Xcode version is valid
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
# Xcode 4.3+ is stored in /Applications
QMAKE_IOS_PLATFORM_PATH = /Applications/Xcode.app/Contents/Developer/Platforms
# Make sure Xcode path is valid
!exists($$QMAKE_IOS_PLATFORM_PATH): error("Xcode is not installed in /Applications/Xcode.app! Edit mkspecs/common/ios/versions.conf to specify version installed.")
} else {
# Older Xcode versions are stored in /Developer
QMAKE_IOS_PLATFORM_PATH = /Developer/Platforms
# Make sure Xcode path is valid
!exists($$QMAKE_IOS_PLATFORM_PATH): error("Xcode is not installed in /Developer! Edit mkspecs/common/ios/versions.conf to specify version installed.")
}
# iOS 4.3 is the preferred version as it is the earliest version that is armv7/gles2 only
QMAKE_IPHONEOS_PREFERRED_TARGET = 4.3
# Building for iOS device?
!*simulator* {
# No iOS SDK version specified?
isEmpty(QMAKE_IOS_SDK_VERSION) {
# Get version string from installed Xcode
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
QMAKE_IOS_SDK_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -showsdks)
} else: QMAKE_IOS_SDK_INFO = $$system(/Developer/usr/bin/xcodebuild -showsdks)
# Get names of installed device SDKs
QMAKE_IOS_SDK_INFO = $$find(QMAKE_IOS_SDK_INFO, ^iphoneos)
for(v, QMAKE_IOS_SDK_INFO): {
# Extract SDK version number from output
v = $$replace(v,iphoneos,)
# Use latest SDK version
greaterThan(v, $$QMAKE_IOS_SDK_VERSION): QMAKE_IOS_SDK_VERSION = $$v
}
QMAKE_IOS_SDK_INFO =
}
# Make sure iOS SDK version is valid
!exists($$QMAKE_IOS_PLATFORM_PATH/iPhoneOS.platform/Developer/SDKs/iPhoneOS$${QMAKE_IOS_SDK_VERSION}.sdk) {
error("iOS $$QMAKE_IOS_SDK_VERSION SDK not found! Edit mkspecs/common/ios/versions.conf to specify version installed.")
}
# No deployment target specified?
isEmpty(QMAKE_IPHONEOS_DEPLOYMENT_TARGET) {
# Use SDK version for iOS versions < preferred
lessThan(QMAKE_IOS_SDK_VERSION, $$QMAKE_IPHONEOS_PREFERRED_TARGET) {
QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IOS_SDK_VERSION
} else: QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IPHONEOS_PREFERRED_TARGET
}
# Make sure iOS SDK version is >= iOS target version
!lessThan(QMAKE_IPHONEOS_DEPLOYMENT_TARGET, $$QMAKE_IOS_SDK_VERSION) {
error("Target iOS version is greater that iOS SDK version $$QMAKE_IOS_SDK_VERSION! Edit mkspecs/common/ios/versions.conf to specify target iOS version.")
}
# Building for iOS simulator
} else {
# No iOS simulator SDK version specified?
isEmpty(QMAKE_IOS_SIMULATOR_SDK_VERSION) {
# Get version string from installed Xcode
!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") {
QMAKE_IOS_SDK_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -showsdks)
} else: QMAKE_IOS_SDK_INFO = $$system(/Developer/usr/bin/xcodebuild -showsdks)
# Get names of installed device SDKs
QMAKE_IOS_SDK_INFO = $$find(QMAKE_IOS_SDK_INFO, ^iphonesimulator)
for(v, QMAKE_IOS_SDK_INFO): {
# Extract SDK version number from output
v = $$replace(v,iphonesimulator,)
# Use latest SDK version
greaterThan(v, $$QMAKE_IOS_SIMULATOR_SDK_VERSION): QMAKE_IOS_SIMULATOR_SDK_VERSION = $$v
}
QMAKE_IOS_SDK_INFO =
}
# Make sure iOS simulator SDK version is valid
!exists($$QMAKE_IOS_PLATFORM_PATH/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$${QMAKE_IOS_SIMULATOR_SDK_VERSION}.sdk) {
error("iOS $$QMAKE_IOS_SIMULATOR_SDK_VERSION simulator SDK not found! Edit mkspecs/common/ios/versions.conf to specify version installed.")
}
# No deployment target specified?
isEmpty(QMAKE_IPHONEOS_DEPLOYMENT_TARGET) {
# Use SDK version for iOS versions < preferred
lessThan(QMAKE_IOS_SIMULATOR_SDK_VERSION, $$QMAKE_IPHONEOS_PREFERRED_TARGET) {
QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IOS_SIMULATOR_SDK_VERSION
} else: QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IPHONEOS_PREFERRED_TARGET
}
# Make sure iOS simulator SDK version is >= iOS target version
!lessThan(QMAKE_IPHONEOS_DEPLOYMENT_TARGET, $$QMAKE_IOS_SIMULATOR_SDK_VERSION) {
error("Target iOS version is greater that iOS simulator SDK version $$QMAKE_IOS_SIMULATOR_SDK_VERSION! Edit mkspecs/common/ios/versions.conf to specify target iOS version.")
}
}
QMAKE_IPHONEOS_PREFERRED_TARGET =
QMAKE_IOS_PLATFORM_PATH =
# Set deployment target
QMAKE_IOS_VERSION_FLAGS = -miphoneos-version-min=$$QMAKE_IPHONEOS_DEPLOYMENT_TARGET
# Set build flags
QMAKE_CFLAGS += $$QMAKE_IOS_VERSION_FLAGS
QMAKE_CXXFLAGS += $$QMAKE_IOS_VERSION_FLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_VERSION_FLAGS
QMAKE_LFLAGS += $$QMAKE_IOS_VERSION_FLAGS
QMAKE_IOS_VERSION_FLAGS =

38
mkspecs/linux/linux.cmake Normal file
View file

@ -0,0 +1,38 @@
if("${KATIE_COMPILER}" MATCHES "(gcc|clang)")
set(KATIE_CXXFLAGS
${KATIE_CXXFLAGS}
-fPIC
-Wno-unused
-Wno-parentheses
-Wformat
-Werror=format-security
-fvisibility=hidden
-fvisibility-inlines-hidden
# -Wall -Wreturn-type -fno-strict-aliasing -Wcast-align
# -Wchar-subscripts -Wreturn-type -Wno-unused-parameter
# -Wno-sign-compare -Wno-switch -Wno-switch-enum
# -Wundef -Wmissing-noreturn -Winit-self
)
set(KATIE_LDFLAGS
${KATIE_LDFLAGS}
-Wl,-O1
-Wl,--no-undefined
-Wl,-Bsymbolic-functions
# -Wl,--dynamic-list
)
set(QT_VISIBILITY_AVAILABLE TRUE)
endif()
set(QT_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")
set(QT_HEADERS_PATH "${QT_PREFIX_PATH}/include/katie")
set(QT_LIBRARIES_PATH "${QT_PREFIX_PATH}/lib/katie")
set(QT_BINARIES_PATH "${QT_LIBRARIES_PATH}/bin")
set(QT_PLUGINS_PATH "${QT_LIBRARIES_PATH}/plugins")
set(QT_IMPORTS_PATH "${QT_LIBRARIES_PATH}/imports")
set(QT_DATA_PATH "${QT_PREFIX_PATH}/share")
set(QT_TRANSLATIONS_PATH "${QT_DATA_PATH}/translations")
set(QT_DOCUMENTATION_PATH "${QT_DATA_PATH}/doc")
set(QT_EXAMPLES_PATH "${QT_DATA_PATH}/examples")
set(QT_DEMOS_PATH "${QT_DATA_PATH}/demos")
set(QT_SETTINGS_PATH "/etc/xdg")

View file

@ -0,0 +1,101 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
// 1) need to reset default environment if _BSD_SOURCE is defined
// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
// 3) it seems older glibc need this to include the X/Open stuff
#ifndef _GNU_SOURCE
# define _GNU_SOURCE
#endif
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <features.h>
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#define QT_USE_XOPEN_LFS_EXTENSIONS
#include "common/mkspecs_posix.h"
#undef QT_SOCKLEN_T
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
#define QT_SOCKLEN_T socklen_t
#else
#define QT_SOCKLEN_T int
#endif
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif
#endif // QPLATFORMDEFS_H

32
mkspecs/mac/g++-macx.conf Normal file
View file

@ -0,0 +1,32 @@
#
# Qmake configuration for the GNU C++ compiler on Mac OS X
#
# Before making changes to this file, please read the comment in
# gcc-base.conf, to make sure the change goes in the right place.
#
# To verify that your change has the desired effect on the final configuration
# you can use the manual test in tests/manual/mkspecs.
#
include(g++-base.conf)
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_DWARF2
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_DWARF2
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += -g $$QMAKE_CFLAGS_DWARF2
QMAKE_LFLAGS_STATIC_LIB += -all_load
QMAKE_CFLAGS_X86_64 += -Xarch_x86_64 -mmacosx-version-min=10.5
QMAKE_CFLAGS_PPC_64 += -Xarch_ppc64 -mmacosx-version-min=10.5
QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_CXXFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
QMAKE_LFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_LFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
QMAKE_OBJCFLAGS_PRECOMPILE = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE

View file

@ -0,0 +1,50 @@
#
# Base qmake configuration for GCC on Mac OS X
#
# Before making changes to this file, please read the comment in
# gcc-base.conf, to make sure the change goes in the right place.
#
# To verify that your change has the desired effect on the final configuration
# you can use the manual test in tests/manual/mkspecs.
#
include(gcc-base.conf)
QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__
QMAKE_CFLAGS_X86 += -arch i386
QMAKE_CFLAGS_X86_64 += -arch x86_64
QMAKE_CFLAGS_PPC += -arch ppc
QMAKE_CFLAGS_PPC_64 += -arch ppc64
QMAKE_CFLAGS_DWARF2 += -gdwarf-2
QMAKE_CXXFLAGS_X86 += $$QMAKE_CFLAGS_X86
QMAKE_CXXFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
QMAKE_CXXFLAGS_PPC += $$QMAKE_CFLAGS_PPC
QMAKE_CXXFLAGS_PPC_64 += $$QMAKE_CFLAGS_PPC_64
QMAKE_CXXFLAGS_DWARF2 += $$QMAKE_CFLAGS_DWARF2
QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS
QMAKE_OBJECTIVE_CFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_OBJECTIVE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_OBJECTIVE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
QMAKE_OBJECTIVE_CFLAGS_X86 = $$QMAKE_CFLAGS_X86
QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_OBJECTIVE_CFLAGS_PPC = $$QMAKE_CFLAGS_PPC
QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
QMAKE_LFLAGS_X86 += $$QMAKE_CFLAGS_X86
QMAKE_LFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
QMAKE_LFLAGS_PPC += $$QMAKE_CFLAGS_PPC
QMAKE_LFLAGS_PPC_64 += $$QMAKE_CFLAGS_PPC_64
QMAKE_LFLAGS += -headerpad_max_install_names
QMAKE_LFLAGS_SHLIB += -single_module -dynamiclib
QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_INCREMENTAL += -undefined suppress -flat_namespace
QMAKE_LFLAGS_SONAME += -install_name$${LITERAL_WHITESPACE}
QMAKE_LFLAGS_VERSION += -current_version$${LITERAL_WHITESPACE}
QMAKE_LFLAGS_COMPAT_VERSION += -compatibility_version$${LITERAL_WHITESPACE}

21
mkspecs/mac/mac.conf Normal file
View file

@ -0,0 +1,21 @@
#
# qmake configuration for common Mac OS X
#
QMAKE_RESOURCE = /Developer/Tools/Rez
QMAKE_EXTENSION_SHLIB = dylib
QMAKE_LIBDIR =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
/System/Library/Frameworks/AGL.framework/Headers/
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
QMAKE_LIBS_THREAD =
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 # overridden to 10.5 for Cocoa on the compiler command line

View file

@ -0,0 +1,97 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#define QT_NO_LIBRARY_UNLOAD
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#include "common/mkspecs_posix.h"
#undef QT_OPEN_LARGEFILE
#undef QT_SOCKLEN_T
#undef QT_SIGNAL_IGNORE
#define QT_OPEN_LARGEFILE 0
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
#define QT_SOCKLEN_T socklen_t
#else
#define QT_SOCKLEN_T int
#endif
#define QT_SIGNAL_IGNORE (void (*)(int))1
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#endif // QPLATFORMDEFS_H

1
mkspecs/maemo/TODO Normal file
View file

@ -0,0 +1 @@

118
mkspecs/mkspecs.cmake Normal file
View file

@ -0,0 +1,118 @@
string(TIMESTAMP KATIE_DATE "%Y-%m-%d")
set(KATIE_MAJOR "4")
set(KATIE_MINOR "8")
set(KATIE_MICRO "7")
set(KATIE_NAME "Katie")
set(KATIE_VERSION "${KATIE_MAJOR}.${KATIE_MINOR}.${KATIE_MICRO}")
set(KATIE_STRING "qt4 ${KATIE_MAJOR}.${KATIE_MINOR}.${KATIE_MICRO}")
set(KATIE_BUGREPORT "xakepa10@gmail.com")
set(KATIE_URL "http://github.com/fluxer/qt-opensource")
set(KATIE_COMPONENTS "Core Gui DBus Declarative Designer Help Multimedia Network OpenGL Phonon Sql Svg Xml XmlPatterns Script ScriptTools Test UiTools")
# TODO: designer, linguist? make dbus tools optional
set(KATIE_TOOLS "moc uic rcc qdbusxml2cpp qdbuscpp2xml qhelpgenerator qcollectiongenerator lupdate lrelease lconvert")
set(QT_LICENSE "Open Source")
set(QT_PRODUCT "OpenSauce") # it's not a bug, it's a feature!
# in case a it's being include by something other than Katie build system
if(NOT KATIE_PLATFORM)
set(KATIE_PLATFORM "auto")
endif()
if(NOT KATIE_COMPILER)
set(KATIE_COMPILER "auto")
endif()
if(NOT KATIE_ARCHITECTURE)
set(KATIE_ARCHITECTURE "auto")
endif()
if(NOT KATIE_TYPE)
set(KATIE_TYPE "auto")
endif()
if(NOT KATIE_KEY)
set(KATIE_KEY "auto")
endif()
if(NOT KATIE_KEY_COMPAT)
set(KATIE_KEY_COMPAT "auto")
endif()
if(NOT KATIE_MKSPECS_DIR)
set(KATIE_MKSPECS_DIR ${CMAKE_SOURCE_DIR}/mkspecs)
endif()
# TODO: more platforms/architectures support
include_directories(${KATIE_MKSPECS_DIR})
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND KATIE_PLATFORM STREQUAL "auto")
include_directories(${KATIE_MKSPECS_DIR}/linux)
set(KATIE_PLATFORM "linux")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND KATIE_PLATFORM STREQUAL "auto")
include_directories(${KATIE_MKSPECS_DIR}/win32)
set(KATIE_PLATFORM "win32")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND KATIE_PLATFORM STREQUAL "auto")
include_directories(${KATIE_MKSPECS_DIR}/mac)
set(KATIE_PLATFORM "mac")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" AND KATIE_PLATFORM STREQUAL "auto")
include_directories(${KATIE_MKSPECS_DIR}/freebsd)
set(KATIE_PLATFORM "freebsd")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" AND KATIE_PLATFORM STREQUAL "auto")
include_directories(${KATIE_MKSPECS_DIR}/openbsd)
set(KATIE_PLATFORM "openbsd")
elseif(KATIE_PLATFORM STREQUAL "auto")
MESSAGE(FATAL_ERROR "Unknown platform '${CMAKE_SYSTEM_NAME}'")
endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND KATIE_COMPILER STREQUAL "auto")
set(KATIE_COMPILER "clang")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND KATIE_COMPILER STREQUAL "auto")
set(KATIE_COMPILER "gcc")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" AND KATIE_COMPILER STREQUAL "auto")
set(KATIE_COMPILER "icc")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" AND KATIE_COMPILER STREQUAL "auto")
set(KATIE_COMPILER "msvc")
elseif(KATIE_COMPILER STREQUAL "auto")
MESSAGE(FATAL_ERROR "Unknown compiler '${CMAKE_CXX_COMPILER_ID}'")
endif()
if(CMAKE_SYSTEM_PROCESSOR)
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
elseif(CMAKE_HOST_SYSTEM_PROCESSOR)
string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
endif()
if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND KATIE_ARCHITECTURE STREQUAL "auto")
set(KATIE_ARCHITECTURE "arm")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips" AND KATIE_ARCHITECTURE STREQUAL "auto")
set(KATIE_ARCHITECTURE "mips")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)" AND KATIE_ARCHITECTURE STREQUAL "auto")
set(KATIE_ARCHITECTURE "x86_64")
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)" AND KATIE_ARCHITECTURE STREQUAL "auto")
set(KATIE_ARCHITECTURE "i386")
elseif(KATIE_ARCHITECTURE STREQUAL "auto")
MESSAGE(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'")
endif()
# XXX: Plan9 does not supporting dynamic libraries
if(${KATIE_TYPE} STREQUAL "auto")
set(KATIE_TYPE SHARED)
katie_definition(-DQT_SHARED)
endif()
if(${KATIE_PLATFORM} MATCHES "(win32|wince)" AND NOT ${KATIE_TYPE} STREQUAL SHARED)
katie_definition(-DQT_MAKEDLL)
endif()
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
katie_definition(-DQT_NO_DEBUG -DNDEBUG)
endif()
katie_definition(-DQT_OPENSOURCE)
include(${KATIE_MKSPECS_DIR}/tests/tests.cmake)
if(${KATIE_KEY} STREQUAL "auto")
set(KATIE_KEY "${KATIE_ARCHITECTURE} ${KATIE_PLATFORM} ${KATIE_COMPILER} full-config")
endif()
if(EXISTS ${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/${KATIE_PLATFORM}.cmake)
include(${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/${KATIE_PLATFORM}.cmake)
endif()
# for distributions to override build specifications
if(EXISTS ${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/vendor.cmake)
include(${KATIE_MKSPECS_DIR}/${KATIE_PLATFORM}/vendor.cmake)
endif()

View file

@ -0,0 +1,89 @@
#
# qmake configuration for openbsd-g++
#
MAKEFILE_GENERATOR = UNIX
TARGET_PLATFORM = unix
TEMPLATE = app
CONFIG += qt warn_on release link_prl gdb_dwarf_index
QT += core gui
QMAKE_CC = gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = yacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -pipe
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall -W
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_SHLIB = -fPIC
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_THREAD = -pthread
QMAKE_CXX = g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_INCDIR = /usr/local/include
QMAKE_LIBDIR = /usr/local/lib
QMAKE_INCDIR_X11 = /usr/X11R6/include
QMAKE_LIBDIR_X11 = /usr/X11R6/lib
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
QMAKE_LINK = g++
QMAKE_LINK_SHLIB = g++
QMAKE_LINK_C = gcc
QMAKE_LINK_C_SHLIB = gcc
QMAKE_LINK_SHLIB_CMD = $$QMAKE_LINK_SHLIB $(LFLAGS) \
$$QMAKE_CFLAGS_SHLIB $$QMAKE_LFLAGS \
-o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
QMAKE_LFLAGS =
QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_SHLIB = -shared
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME = -Wl,-soname,
QMAKE_LFLAGS_THREAD = -pthread
QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_X11 = -lXext -lX11 -lm
QMAKE_LIBS_X11SM = -lSM -lICE
QMAKE_LIBS_OPENGL = -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD =
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
QMAKE_AR = ar q
QMAKE_OBJCOPY = objcopy
QMAKE_RANLIB = ranlib
QMAKE_TAR = tar -cf
QMAKE_GZIP = gzip -9f
QMAKE_COPY = cp -f
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p
include(../common/unix.conf)
load(qt_config)

View file

@ -0,0 +1,111 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include "qglobal.h"
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <dlfcn.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
#include "common/mkspecs_posix.h"
#undef QT_OPEN_LARGEFILE
#define QT_OPEN_LARGEFILE 0
// QT_SOCKLEN_T
// OpenBSD 2.2 - 2.4 int
// OpenBSD 2.5 - 2.8 socklen_t
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
// 1003.1c-1995 says on page 38 (2.9.3, paragraph 3) that if _POSIX_THREADS
// is defined, then _POSIX_THREAD_SAFE_FUNCTIONS must also be defined.
// However this looks like a well-known typo (reversed dependency).
//
// On the other hand _POSIX_THREAD_SAFE_FUNCTIONS should be defined only
// if the Thread-Safe Functions option is implemented. OpenBSD does not
// support all of the required _r() interfaces, especially getpwuid_r(),
// which means it should not define _POSIX_THREAD_SAFE_FUNCTIONS.
//
// Since OpenBSD does define _POSIX_THREAD_SAFE_FUNCTIONS, we have to
// undefine it behind its back.
#ifdef _POSIX_THREAD_SAFE_FUNCTIONS
#undef _POSIX_THREAD_SAFE_FUNCTIONS
#endif
// Older OpenBSD versions may still use the a.out format instead of ELF.
#ifndef __ELF__
#define QT_AOUT_UNDERSCORE
#endif
#endif // QPLATFORMDEFS_H

54
mkspecs/qnx/qmake.conf Normal file
View file

@ -0,0 +1,54 @@
#
# qmake configuration common for qnx-g++ without X11
#
QT -= network
QMAKE_COMPILER_DEFINES += __QNXNTO__
# modifications to linux.conf and qws.conf
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
QMAKE_LIBS_NIS =
QMAKE_LIBS_EGL = -lEGL
QMAKE_LIBS_OPENGL = $$QMAKE_LIBS_EGL -lGLESv1_CM -lGLESv2
QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
QMAKE_LIBS_OPENGL_ES1 = $$QMAKE_LIBS_EGL -lGLESv1_CM
QMAKE_LIBS_OPENGL_ES2 = $$QMAKE_LIBS_EGL -lGLESv2
QMAKE_LIBS_OPENVG = $$QMAKE_LIBS_EGL -lOpenVG
QMAKE_LIBS_THREAD =
QMAKE_LIBS_CORE =
QMAKE_LIBS_NETWORK += -lsocket
QMAKE_LIBS_GUI += -lsocket
# QNX doesn't have install
QMAKE_INSTALL_FILE =
QMAKE_INSTALL_PROGRAM =
QMAKE_LFLAGS_SHLIB += -shared
QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME += -Wl,-soname,
QMAKE_LFLAGS_THREAD +=
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
# -Bsymbolic-functions (ld) support
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
# Generic options for all BlackBerry/QNX qcc mkspecs
QMAKE_CFLAGS_THREAD = -D_REENTRANT
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_COMPILER_DEFINES += __QNXNTO__
QMAKE_LIBS = -lm
QMAKE_LIBS_NETWORK = -lsocket
# OpenGL libraries have a dependency on libEGL
QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM -lEGL
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 -lEGL
QMAKE_INCDIR = $${QNX_DIR}/usr/include $${QNX_DIR}/usr/include/freetype2
QMAKE_LIBDIR = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib
QMAKE_LFLAGS += -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/lib -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/usr/lib

111
mkspecs/qnx/qplatformdefs.h Normal file
View file

@ -0,0 +1,111 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
// Get Qt defines/settings
#include <qglobal.h>
// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
#include <unistd.h>
// We are hot - unistd.h should have turned on the specific APIs we requested
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <netinet/in.h>
#ifndef QT_NO_IPV6IFNAME
#include <net/if.h>
#endif
// for htonl
#include <arpa/inet.h>
#define QT_USE_XOPEN_LFS_EXTENSIONS
#if !defined(__EXT_QNX__READDIR64_R)
#define QT_NO_READDIR64
#endif
#include "common/mkspecs_posix.h"
#if defined(__EXT_QNX__READDIR64_R)
#define QT_EXT_QNX_READDIR_R ::_readdir64_r
#elif defined(__EXT_QNX__READDIR_R)
#define QT_EXT_QNX_READDIR_R ::_readdir_r
#endif
#include <stdlib.h>
#define QT_SNPRINTF ::snprintf
#define QT_VSNPRINTF ::vsnprintf
#include <sys/neutrino.h>
#if !defined(_NTO_VERSION) || _NTO_VERSION < 650
// pre-6.5 versions of QNX doesn't have getpagesize()
inline int getpagesize()
{
return ::sysconf(_SC_PAGESIZE);
}
// pre-6.5 versions of QNX doesn't have strtof()
inline float strtof(const char *b, char **e)
{
return float(strtod(b, e));
}
#endif
#define QT_QWS_TEMP_DIR QString::fromLocal8Bit(qgetenv("TMPDIR").constData())
#endif // QPLATFORMDEFS_H

1
mkspecs/qpa/TODO Normal file
View file

@ -0,0 +1 @@

1
mkspecs/qws/TODO Normal file
View file

@ -0,0 +1 @@
same as linux

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <mm3dnow.h>
#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
#error GCC < 3.2 is known to create internal compiler errors with our MMX code
#endif
int main(int, char**)
{
_m_femms();
return 0;
}

51
mkspecs/tests/cpu/avx.cpp Normal file
View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <immintrin.h>
int main(int, char**)
{
volatile __m256d a = _mm256_setzero_pd();
volatile __m256d b = _mm256_set1_pd(42.42);
volatile __m256d result = _mm256_add_pd(a, b);
(void)result;
return 0;
}

View file

@ -0,0 +1,48 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <mmintrin.h>
int main(int, char**)
{
_mm_unpackhi_pi16(_mm_setzero_si64(), _mm_setzero_si64());
return 0;
}

51
mkspecs/tests/cpu/mmx.cpp Normal file
View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <mmintrin.h>
#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
#error GCC < 3.2 is known to create internal compiler errors with our MMX code
#endif
int main(int, char**)
{
_mm_empty();
return 0;
}

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <arm_neon.h>
int main(int, char**)
{
int32x4_t null = vdupq_n_s32(0x0);
int result;
vst1q_lane_s32(&result, null, 0);
return result;
}

52
mkspecs/tests/cpu/sse.cpp Normal file
View file

@ -0,0 +1,52 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <xmmintrin.h>
#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
#error GCC < 3.2 is known to create internal compiler errors with our MMX code
#endif
int main(int, char**)
{
__m64 a = _mm_setzero_si64();
a = _mm_shuffle_pi16(a, 0);
return _m_to_int(a);
}

View file

@ -0,0 +1,52 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <emmintrin.h>
#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
#error GCC < 3.2 is known to create internal compiler errors with our MMX code
#endif
int main(int, char**)
{
__m128i a = _mm_setzero_si128();
_mm_maskmoveu_si128(a, _mm_setzero_si128(), 0);
return 0;
}

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <pmmintrin.h>
int main(int, char**)
{
volatile __m128d a = _mm_set1_pd(6.28);
volatile __m128d b = _mm_set1_pd(3.14);
volatile __m128d result = _mm_addsub_pd(a, b);
result = _mm_movedup_pd(result);
return 0;
}

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <smmintrin.h>
int main(int, char**)
{
volatile __m128 a = _mm_setzero_ps();
_mm_ceil_ps(a);
volatile __m128i result = _mm_mullo_epi32(_mm_set1_epi32(42), _mm_set1_epi32(64));
(void)result;
return 0;
}

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <smmintrin.h>
int main(int, char**)
{
volatile __m128i a = _mm_setzero_si128();
volatile __m128i b = _mm_set1_epi32(42);
volatile __m128i result = _mm_cmpestrm(a, 16, b, 16, 0);
(void)result;
return 0;
}

View file

@ -0,0 +1,51 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <tmmintrin.h>
int main(int, char**)
{
volatile __m128i a = _mm_set1_epi32(42);
_mm_abs_epi8(a);
volatile __m128i result = _mm_sign_epi16(a, _mm_set1_epi32(64));
(void)result;
return 0;
}

150
mkspecs/tests/misc/stl.cpp Normal file
View file

@ -0,0 +1,150 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the config.tests of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
/* Sample program for configure to test STL support on target
platforms. We are mainly concerned with being able to instantiate
templates for common STL container classes.
*/
#include <iterator>
#include <map>
#include <vector>
#include <algorithm>
#include <iostream>
// something mean to see if the compiler and C++ standard lib are good enough
template<class K, class T>
class DummyClass
{
// everything in std namespace ?
typedef std::bidirectional_iterator_tag i;
typedef std::ptrdiff_t d;
// typename implemented ?
typedef typename std::map<K,T>::iterator MyIterator;
};
// extracted from QVector's strict iterator
template<class T>
class DummyIterator
{
typedef DummyIterator<int> iterator;
public:
T *i;
typedef std::random_access_iterator_tag iterator_category;
typedef std::ptrdiff_t difference_type;
typedef T value_type;
typedef T *pointer;
typedef T &reference;
inline DummyIterator() : i(0) {}
inline DummyIterator(T *n) : i(n) {}
inline DummyIterator(const DummyIterator &o): i(o.i){}
inline T &operator*() const { return *i; }
inline T *operator->() const { return i; }
inline T &operator[](int j) const { return *(i + j); }
inline bool operator==(const DummyIterator &o) const { return i == o.i; }
inline bool operator!=(const DummyIterator &o) const { return i != o.i; }
inline bool operator<(const DummyIterator& other) const { return i < other.i; }
inline bool operator<=(const DummyIterator& other) const { return i <= other.i; }
inline bool operator>(const DummyIterator& other) const { return i > other.i; }
inline bool operator>=(const DummyIterator& other) const { return i >= other.i; }
inline DummyIterator &operator++() { ++i; return *this; }
inline DummyIterator operator++(int) { T *n = i; ++i; return n; }
inline DummyIterator &operator--() { i--; return *this; }
inline DummyIterator operator--(int) { T *n = i; i--; return n; }
inline DummyIterator &operator+=(int j) { i+=j; return *this; }
inline DummyIterator &operator-=(int j) { i-=j; return *this; }
inline DummyIterator operator+(int j) const { return DummyIterator(i+j); }
inline DummyIterator operator-(int j) const { return DummyIterator(i-j); }
inline int operator-(DummyIterator j) const { return i - j.i; }
};
int main()
{
std::vector<int> v1;
v1.push_back( 0 );
v1.push_back( 1 );
v1.push_back( 2 );
v1.push_back( 3 );
v1.push_back( 4 );
int v1size = v1.size();
v1size = 0;
int v1capacity = v1.capacity();
v1capacity = 0;
std::vector<int>::iterator v1it = std::find( v1.begin(), v1.end(), 99 );
bool v1notfound = (v1it == v1.end());
v1notfound = false;
v1it = std::find( v1.begin(), v1.end(), 3 );
bool v1found = (v1it != v1.end());
v1found = false;
std::vector<int> v2;
std::copy( v1.begin(), v1it, std::back_inserter( v2 ) );
int v2size = v2.size();
v2size = 0;
std::map<int, double> m1;
m1.insert( std::make_pair( 1, 2.0 ) );
m1.insert( std::make_pair( 3, 2.0 ) );
m1.insert( std::make_pair( 5, 2.0 ) );
m1.insert( std::make_pair( 7, 2.0 ) );
int m1size = m1.size();
m1size = 0;
std::map<int,double>::iterator m1it = m1.begin();
for ( ; m1it != m1.end(); ++m1it ) {
int first = (*m1it).first;
first = 0;
double second = (*m1it).second;
second = 0.0;
}
std::map< int, double > m2( m1 );
int m2size = m2.size();
m2size = 0;
DummyIterator<int> it1, it2;
int n = std::distance(it1, it2);
std::advance(it1, 3);
return 0;
}

72
mkspecs/tests/tests.cmake Normal file
View file

@ -0,0 +1,72 @@
################################ CPU TESTS ################################
function(KATIE_CPU_TEST _test _define _flag)
string(TOUPPER ${_test} uppertest)
try_compile(
_has_cpu_feature
${CMAKE_BINARY_DIR}/katie_tests/cpu
${KATIE_MKSPECS_DIR}/tests/cpu/${_test}.cpp
COMPILE_DEFINITIONS -m${_flag}
OUTPUT_VARIABLE _cpu_feature_log
)
if(_has_cpu_feature)
add_definitions(-DQT_HAVE_${_define})
endif()
message(STATUS "Host CPU supports ${uppertest}: ${_has_cpu_feature}")
file(WRITE ${CMAKE_BINARY_DIR}/katie_tests/cpu/${_test}.log "${_cpu_feature_log}")
set(_${uppertest}_RESULT ${_has_cpu_feature} PARENT_SCOPE)
endfunction()
katie_cpu_test(3dnow 3DNOW 3dnow)
katie_cpu_test(avx AVX avx)
katie_cpu_test(mmx MMX mmx)
katie_cpu_test(sse SSE sse)
katie_cpu_test(sse2 SSE2 sse2)
if(_SSE2_RESULT)
katie_cpu_test(sse3 SSE3 sse3)
if(_SSE3_RESULT)
katie_cpu_test(ssse3 SSSE3 ssse3)
if(_SSSE3_RESULT)
katie_cpu_test(sse4_1 SSE4_1 sse4.1)
if(_SSE4_1_RESULT)
katie_cpu_test(sse4_2 SSE4_2 sse4.2)
endif()
endif()
endif()
endif()
if("${KATIE_ARCHITECTURE}" STREQUAL "arm")
katie_cpu_test(iwmmxt IWMMXT cpu=iwmmxt)
if(NOT _IWMMXT_RESULT)
message(SEND_ERROR "Please make sure your compiler supports iWMMXt intrinsics!")
endif()
katie_cpu_test(neon NEON -mfpu=neon)
endif()
################################ MISC TESTS ################################
function(KATIE_MISC_TEST _test _define)
string(TOUPPER ${_test} uppertest)
try_compile(
_has_misc_feature
${CMAKE_BINARY_DIR}/katie_tests/misc
${KATIE_MKSPECS_DIR}/tests/misc/${_test}.cpp
OUTPUT_VARIABLE _misc_feature_log
)
if(_has_misc_feature)
add_definitions(-DQT_${_define})
else()
add_definitions(-DQT_NO_${_define})
endif()
message(STATUS "Host supports ${uppertest}: ${_has_misc_feature}")
file(WRITE ${CMAKE_BINARY_DIR}/katie_tests/misc/${_test}.log "${_misc_feature_log}")
set(_${uppertest}_RESULT ${_has_misc_feature} PARENT_SCOPE)
endfunction()
katie_misc_test(stl STL)
include(CheckTypeSize)
check_type_size(size_t QT_POINTER_SIZE)

1
mkspecs/vxworks/TODO Normal file
View file

@ -0,0 +1 @@

95
mkspecs/win32/qmake.conf Normal file
View file

@ -0,0 +1,95 @@
#
# qmake configuration for win32-msvc2005
#
# Written for Microsoft Visual C++ 2005
#
MAKEFILE_GENERATOR = MSVC.NET
TEMPLATE = app
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
QT += core gui
DEFINES += UNICODE WIN32
QMAKE_COMPILER_DEFINES += _MSC_VER=1400 WIN32
QMAKE_CC = cl
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_LTCG = -GL
QMAKE_CXX = $$QMAKE_CC
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_STL_ON = -EHsc
QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
QMAKE_CXXFLAGS_RTTI_OFF =
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
QMAKE_INCDIR =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_LINK = link
QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
QMAKE_LFLAGS_DEBUG = /DEBUG
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
QMAKE_LFLAGS_DLL = /DLL
QMAKE_LFLAGS_LTCG = /LTCG
QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
QMAKE_LIBS_NETWORK = ws2_32.lib
QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
QMAKE_LIBS_QT_ENTRY = -lqtmain
QMAKE_MOC = $$[QT_INSTALL_BINS]\\moc.exe
QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe
QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe
QMAKE_IDL = midl
QMAKE_LIB = lib /NOLOGO
QMAKE_RC = rc
QMAKE_ZIP = zip -r -9
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
QMAKE_MKDIR = mkdir
VCPROJ_EXTENSION = .vcproj
VCSOLUTION_EXTENSION = .sln
VCPROJ_KEYWORD = Qt4VSv1.0
load(qt_config)

View file

@ -0,0 +1,142 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE
#endif
#endif
// Get Qt defines/settings
#include "qglobal.h"
#define _POSIX_
#include <limits.h>
#undef _POSIX_
#include <tchar.h>
#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <windows.h>
#define Q_FS_FAT
#ifdef QT_LARGEFILE_SUPPORT
#define QT_STATBUF struct _stati64 // non-ANSI defs
#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs
#define QT_STAT ::_stati64
#define QT_FSTAT ::_fstati64
#else
#define QT_STATBUF struct _stat // non-ANSI defs
#define QT_STATBUF4TSTAT struct _stat // non-ANSI defs
#define QT_STAT ::_stat
#define QT_FSTAT ::_fstat
#endif
#define QT_STAT_REG _S_IFREG
#define QT_STAT_DIR _S_IFDIR
#define QT_STAT_MASK _S_IFMT
#if defined(_S_IFLNK)
# define QT_STAT_LNK _S_IFLNK
#endif
#define QT_FILENO _fileno
#define QT_OPEN ::_open
#define QT_CLOSE ::_close
#ifdef QT_LARGEFILE_SUPPORT
#define QT_LSEEK ::_lseeki64
#define QT_TSTAT ::_tstati64
#else
#define QT_LSEEK ::_lseek
#define QT_TSTAT ::_tstat
#endif
#define QT_READ ::_read
#define QT_WRITE ::_write
#define QT_ACCESS ::_access
#define QT_GETCWD ::_getcwd
#define QT_CHDIR ::_chdir
#define QT_MKDIR ::_mkdir
#define QT_RMDIR ::_rmdir
#define QT_OPEN_LARGEFILE 0
#define QT_OPEN_RDONLY _O_RDONLY
#define QT_OPEN_WRONLY _O_WRONLY
#define QT_OPEN_RDWR _O_RDWR
#define QT_OPEN_CREAT _O_CREAT
#define QT_OPEN_TRUNC _O_TRUNC
#define QT_OPEN_APPEND _O_APPEND
#if defined(O_TEXT)
# define QT_OPEN_TEXT _O_TEXT
# define QT_OPEN_BINARY _O_BINARY
#endif
#include "common/mkspecs_c89.h"
#ifdef QT_LARGEFILE_SUPPORT
#undef QT_FSEEK
#undef QT_FTELL
#undef QT_OFF_T
#define QT_FSEEK ::_fseeki64
#define QT_FTELL ::_ftelli64
#define QT_OFF_T __int64
#endif
#define QT_SIGNAL_ARGS int
#define QT_VSNPRINTF(buffer, count, format, arg) \
vsnprintf_s(buffer, count, count-1, format, arg)
#define QT_SNPRINTF ::_snprintf
#define F_OK 0
#define X_OK 1
#define W_OK 2
#define R_OK 4
typedef int mode_t;
#endif // QPLATFORMDEFS_H

16
mkspecs/win32/win32.cmake Normal file
View file

@ -0,0 +1,16 @@
add_definitions(-D_USE_MATH_DEFINES -DUNICODE -DWIN32)
set(KATIE_TOOLS "${KATIE_TOOLS} idc")
set(QT_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")
set(QT_HEADERS_PATH "${QT_PREFIX_PATH}/include")
set(QT_LIBRARIES_PATH "${QT_PREFIX_PATH}/lib")
set(QT_BINARIES_PATH "${QT_LIBRARIES_PATH}/bin")
set(QT_PLUGINS_PATH "${QT_LIBRARIES_PATH}/plugins")
set(QT_IMPORTS_PATH "${QT_LIBRARIES_PATH}/imports")
set(QT_DATA_PATH "${QT_PREFIX_PATH}")
set(QT_TRANSLATIONS_PATH "${QT_DATA_PATH}/translations")
set(QT_DOCUMENTATION_PATH "${QT_DATA_PATH}/doc")
set(QT_EXAMPLES_PATH "${QT_DATA_PATH}/examples")
set(QT_DEMOS_PATH "${QT_DATA_PATH}/demos")
# FIXME: that's incorrect
set(QT_SETTINGS_PATH "${QT_DATA_PATH}/settings")

72
mkspecs/wince/qmake.conf Normal file
View file

@ -0,0 +1,72 @@
#
# qmake configuration for common Windows CE
#
MAKEFILE_GENERATOR = MSVC.NET
TEMPLATE = app
QT += core gui
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
DEFINES += UNDER_CE WINCE _WINDOWS _UNICODE UNICODE _WIN32 QT_NO_PRINTER QT_NO_PRINTDIALOG
QMAKE_COMPILER_DEFINES += _MSC_VER=1400
QMAKE_CC = cl
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_LTCG = -GL
QMAKE_CFLAGS_DEBUG = -DDEBUG -D_DEBUG -Zi -MDd
QMAKE_CFLAGS_YACC =
# Uncomment the following lines to reduce library sizes
# with potential cost of performance
# QMAKE_CFLAGS += -Os
# QMAKE_CFLAGS_RELEASE += -Os
QMAKE_CXX = $$QMAKE_CC
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_STL_ON = -EHsc
QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
QMAKE_CXXFLAGS_RTTI_OFF =
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -EHs-c-
QMAKE_INCDIR =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_LINK = link
QMAKE_LFLAGS = /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
QMAKE_LFLAGS_DEBUG = /DEBUG
QMAKE_LFLAGS_LTCG = /LTCG
QMAKE_LIBS_NETWORK = ws2.lib
QMAKE_LIBS_OPENGL =
QMAKE_LIBS_COMPAT =
QMAKE_LIBS_EGL = libEGL.lib
QMAKE_LIBS_OPENGL_ES1 = libGLES_CM.lib
QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib
QMAKE_LIBS_QT_ENTRY = -lqtmain

View file

@ -0,0 +1,133 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H
#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE
#endif
#endif
// Get Qt defines/settings
#include "qglobal.h"
#include "qfunctions_wince.h"
#define _POSIX_
#include <limits.h>
#undef _POSIX_
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define Q_FS_FAT
#ifdef QT_LARGEFILE_SUPPORT
#define QT_STATBUF struct _stati64 // non-ANSI defs
#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs
#define QT_STAT ::_stati64
#define QT_FSTAT ::_fstati64
#else
#define QT_STATBUF struct stat // non-ANSI defs
#define QT_STATBUF4TSTAT struct stat // non-ANSI defs
#define QT_STAT ::qt_wince_stat
#define QT_FSTAT ::qt_wince__fstat
#endif
#define QT_STAT_REG _S_IFREG
#define QT_STAT_DIR _S_IFDIR
#define QT_STAT_MASK _S_IFMT
#if defined(_S_IFLNK)
# define QT_STAT_LNK _S_IFLNK
#endif
#define QT_FILENO ::qt_wince___fileno
#define QT_OPEN ::qt_wince_open
#define QT_CLOSE ::qt_wince__close
#ifdef QT_LARGEFILE_SUPPORT
#define QT_LSEEK ::_lseeki64
#define QT_TSTAT ::_tstati64
#else
#define QT_LSEEK ::qt_wince__lseek
#define QT_TSTAT ::_tstat
#endif
#define QT_READ ::qt_wince__read
#define QT_WRITE ::qt_wince__write
#define QT_ACCESS ::qt_wince__access
#define QT_GETCWD ::_getcwd
#define QT_CHDIR ::_chdir
#define QT_MKDIR ::qt_wince__mkdir
#define QT_RMDIR ::qt_wince__rmdir
#define QT_OPEN_LARGEFILE 0
#define QT_OPEN_RDONLY _O_RDONLY
#define QT_OPEN_WRONLY _O_WRONLY
#define QT_OPEN_RDWR _O_RDWR
#define QT_OPEN_CREAT _O_CREAT
#define QT_OPEN_TRUNC _O_TRUNC
#define QT_OPEN_APPEND _O_APPEND
# define QT_OPEN_TEXT _O_TEXT
# define QT_OPEN_BINARY _O_BINARY
#define QT_FOPEN ::fopen
#define QT_FSEEK ::fseek
#define QT_FTELL ::ftell
#define QT_FGETPOS ::fgetpos
#define QT_FSETPOS ::fsetpos
#define QT_MMAP ::mmap
#define QT_FPOS_T fpos_t
#define QT_OFF_T long
#define QT_SIGNAL_ARGS int
#define QT_VSNPRINTF(buffer, count, format, arg) \
_vsnprintf(buffer, count, format, arg)
#define QT_SNPRINTF ::_snprintf
# define F_OK 0
# define X_OK 1
# define W_OK 2
# define R_OK 4
typedef int mode_t;
#endif // QPLATFORMDEFS_H

View file

@ -0,0 +1,51 @@
# $Id:
# Maintainer: Ivailo Monev <xakepa10@gmail.com>
pkgname=katie-git
pkgver=4.8.7.8e7f2a8
pkgrel=1
pkgdesc='C++ library derived from the existing Qt 4.8 framework'
arch=('i686' 'x86_64')
url='http://fluxer.github.io/katana'
license=('LGPL' 'FDL' 'custom')
depends=('openssl' 'zlib' 'cups' 'alsa-lib' 'gtk2' 'nas' 'libgl' 'libice'
'libsm' 'libxcursor' 'libxext' 'libxfixes' 'libxi' 'libxinerama'
'libxrandr' 'libxrender' 'libx11' 'fontconfig' 'freetype2' 'glib2'
'gst-plugins-base' 'libxml2')
makedepends=('cmake' 'git' 'python' 'postgresql' 'mariadb' 'unixodbc' 'mesa' 'vlc')
optdepends=('postgresql-libs: PostgreSQL driver'
'libmariadbclient: MariaDB driver'
'unixodbc: ODBC driver'
'vlc: Phonon VLC backend')
source=("git+https://bitbucket.org/smil3y/katie")
sha1sums=('SKIP')
conflicts=('katie')
# options=('debug')
pkgver() {
cd katie
printf "4.8.7.%s" "$(git rev-parse --short HEAD)"
}
prepare() {
mkdir -p build
}
build() {
cd build
cmake ../katie \
-Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
# -DTOOLS_SUFFIX=-kt
make
}
package() {
cd build
make DESTDIR="${pkgdir}" install
install -vDm644 ../katie/LGPL_EXCEPTION.txt \
"${pkgdir}/usr/share/licenses/katie-git/LGPL_EXCEPTION.txt"
}

View file

@ -0,0 +1,45 @@
# Maintainer: Ivailo Monev <xakepa10@gmail.com>
# http://www.linuxfromscratch.org/blfs/view/svn/x/qt4.html
# http://qt-project.org/doc/qt-4.8/configure-options.html
version=4.8.7
description='Cross-platform application and UI framework'
depends=('libtiff' 'libpng' 'libmng' 'sqlite' 'ca-certificates' 'glib' 'dbus'
'fontconfig' 'xorg-libraries' 'alsa-lib' 'icu' 'hicolor-icon-theme'
'mesalib' 'cups')
makedepends=('python')
optdepends=('gtk2' 'mariadb' 'unixodbc' 'vlc')
sources=("https://smil3y@bitbucket.com/smil3y/katie.git")
src_compile() {
mkdir -p build && cd build
_options="-DWITH_GTK2=FALSE -DWITH_VLC=FALSE"
[ "$OPTIONAL_GTK2" = "yes" ] && _options+=" -DWITH_GTK2=TRUE"
[ "$OPTIONAL_VLC" = "yes" ] && _options+=" -DWITH_VLC=TRUE"
cmake ../katie.git \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
$_options -Wno-dev
make
}
src_check() {
cd "$SOURCE_DIR/build"
make check
}
src_install() {
cd "$SOURCE_DIR/build"
make DESTDIR="$INSTALL_DIR" install
# create symlinks
install -vdm755 "$INSTALL_DIR/usr/bin"
for file in "$INSTALL_DIR/usr/lib/katie/bin/"*;do
# ln -sfv ../lib/katie/bin/$(basename "$file") "$INSTALL_DIR/usr/bin/$(basename $file)"
ln -sfv ../lib/katie/bin/$(basename "$file") "$INSTALL_DIR/usr/bin/$(basename $file)-katie"
done
}

40
scripts/checkresources.sh Executable file
View file

@ -0,0 +1,40 @@
#!/bin/bash
set -e
modify="no"
for i in $@;do
case "$i" in
--modify|-m) modify="yes"
esac
done
builddir="$(dirname "$0")/../build"
autoinc="-I$(pwd)"
for d in $(find $(pwd) $builddir/include $builddir/privateinclude -type d);do
autoinc+=" -I$d"
done
allfiles="$(find -iname '*.cpp' -o -iname '*.h' -printf '%P\n')"
for i in $allfiles;do
if [ -n "$(moc -nw $i $autoinc)" ];then
found="no"
for f in $i ${i//_p_p.h/.cpp} ${i//_p.h/.cpp} ${i/.h/.cpp} ${i//.cpp/.h};do
# echo " >> Checking: $f"
if [ -e "$f" ];then
if grep -q "moc_$(basename $i)" $f ;then
found="yes"
break
fi
fi
done
norm="${i//_p_p.h/.cpp}"
norm="${norm//_p.h/.cpp}"
norm="${norm//.h/.cpp}"
if [ "$found" = "no" ] && [ "$modify" = "no" ];then
echo "moc_$(basename $i) in $norm"
elif [ "$found" = "no" ] && [ "$modify" = "yes" ];then
echo "#include \"moc_$(basename $i)\"" >> "$norm"
fi
fi
done

14
scripts/gendocs.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
set -e
cwd="$(dirname $0)"
if ! type -p doxygen;then
echo "Doxygen is not installed"
exit 1
fi
rm -rf apidocs/*
echo "Generating API docs for Katie..."
doxygen ${cwd}/../doxygen.conf

32
scripts/genmap.py Executable file
View file

@ -0,0 +1,32 @@
#!/usr/bin/python2
import sys, os, re
headersdir = os.getcwd()
component = sys.argv[1]
keyword = sys.argv[2]
mapoutput = '%s/include/%s_map.h' % (headersdir, component)
mapdata = '#ifndef %s_MAP_H\n#define %s_MAP_H\n\n' % (component, component)
def exportscan(sdir):
dirmap = ''
for sroot, sdir, lfiles in os.walk(sdir):
for sfile in lfiles:
if not sfile.endswith('.h'):
continue
sfull = '%s/%s' % (sroot, sfile)
with open(sfull, 'rb') as f:
scontent = f.read()
scontent = scontent.decode('utf-8')
for match in re.findall('class (?:%s) (\w+)' % keyword, scontent):
dirmap += 'QT_CLASS_LIB(%s, %s, %s)\n' % (match, component, sfile)
return dirmap
mapdata += exportscan('%s/include/%s' % (headersdir, component))
mapdata += exportscan('%s/privateinclude/%s' % (headersdir, component))
mapdata += '\n#endif\n'
sys.stderr.write('-- Writing: %s\n' % os.path.basename(mapoutput))
with open(mapoutput, 'wb') as f:
f.write(mapdata)

15
scripts/getresources.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/bash
set -e
builddir="$(dirname "$0")/../build"
autoinc="-I$(pwd)"
for d in $(find $(pwd) $builddir/include $builddir/privateinclude -type d);do
autoinc+=" -I$d"
done
for i in $(find -iname '*.cpp' -o -iname '*.h' -printf '%P\n');do
if [ -n "$(moc -nw $i $autoinc)" ];then
echo ' ${CMAKE_CURRENT_SOURCE_DIR}/'$i
fi
done

376
scripts/incfsck.py Executable file
View file

@ -0,0 +1,376 @@
#!/usr/bin/python2
import sys, os, re
incmap = {
'QtCore': {
'QModelIndexList': 'qabstractitemmodel.h',
'QGenericArgument': 'qobjectdefs.h',
'QProcessEnvironment': 'qprocess.h',
'QMutableHashIterator': 'qhash.h',
'QLatin1Literal': 'qstringbuilder.h',
'QObjectList': 'qobject.h',
'QMapIterator': 'qmap.h',
'QMutexLocker': 'qmutex.h',
'QWeakPointer': 'qsharedpointer.h',
'QArgument': 'qobjectdefs.h',
'QByteRef': 'qbytearray.h',
'QChildEvent': 'qcoreevent.h',
'QMultiMap': 'qmap.h',
'QMetaEnum': 'qmetaobject.h',
'QLatin1String': 'qstring.h',
'QModelIndex': 'qabstractitemmodel.h',
'QPointF': 'qpoint.h',
'QTimerEvent': 'qcoreevent.h',
'QExplicitlySharedDataPointer': 'qsharedpointer.h',
'QXmlStreamNamespaceDeclarations': 'qxmlstream.h',
'QAtomicPointer': 'qatomic.h',
'QReadLocker': 'qreadwritelock.h',
'QWriteLocker': 'qreadwritelock.h',
'QAtomicInt': 'qatomic.h',
'QRectF': 'qrect.h',
'QSizeF': 'qsize.h',
'QBitRef': 'qbitarray.h',
'QXmlStreamReader': 'qxmlstream.h',
'QXmlStreamWriter': 'qxmlstream.h',
'QtAlgorithms': 'qalgorithms.h',
'QAbstractListModel': 'qabstractitemmodel.h',
'QTime': 'qdatetime.h',
'QDate': 'qdatetime.h',
'QMetaProperty': 'qmetaobject.h',
'QMutableListIterator': 'qlist.h',
'QSharedDataPointer': 'qshareddata.h',
'QMetaMethod': 'qmetaobject.h',
'QLatin1Char': 'qchar.h',
'QtPlugin': 'qplugin.h',
'QCharRef': 'qstring.h',
'QBool': 'qglobal.h',
'QMutableStringListIterator': 'qstringlist.h',
'QtDebug': 'qdebug.h',
'QtEndian': 'qendian.h',
'QBasicAtomicInt': 'qbasicatomic.h',
'Q_PID': 'qprocess.h',
'QMetaClassInfo': 'qmetaobject.h',
'QFlags': 'qglobal.h',
'QPersistentModelIndex': 'qabstractitemmodel.h',
'QSysInfo': 'qglobal.h',
'QMutableVectorIterator': 'qvector.h',
'Qt': 'qnamespace.h',
'QAbstractTableModel': 'qabstractitemmodel.h',
'QVariantList': 'qvariant.h',
'QHashIterator': 'qhash.h',
'QMutableMapIterator': 'qmap.h',
'QListIterator': 'qlist.h',
'QVariantMap': 'qvariant.h',
'QXmlStreamAttributes': 'qxmlstream.h',
'QXmlStreamAttribute': 'qxmlstream.h',
'QFileInfoList': 'qfileinfo.h',
'QGlobalStatic': 'qglobal.h',
'QMutableSetIterator': 'qset.h',
'QVariantHash': 'qvariant.h',
'QDynamicPropertyChangeEvent': 'qcoreevent.h',
'QXmlStreamEntityResolver': 'qxmlstream.h',
'QMutableLinkedListIterator': 'qlist.h',
},
'QtGui': {
'QTextTableCell': 'qtexttable.h',
'QPainterPathStroker': 'qpainterpath.h',
'QGraphicsPolygonItem': 'qgraphicsitem.h',
'QSplitterHandle': 'qsplitter.h',
'QGraphicsDropShadowEffect': 'qgraphicseffect.h',
'QGraphicsPixmapItem': 'qgraphicsitem.h',
'QGraphicsRectItem': 'qgraphicsitem.h',
'QGraphicsScale': 'qgraphicstransform.h',
'QGraphicsItemGroup': 'qgraphicsitem.h',
'QGraphicsLineItem': 'qgraphicsitem.h',
'QGraphicsPathItem': 'qgraphicsitem.h',
'QConicalGradient': 'qbrush.h',
'QPlainTextDocumentLayout': 'qplaintextedit.h',
'QGraphicsOpacityEffect': 'qgraphicseffect.h',
'QPinchGesture': 'qgesture.h',
'QGestureEvent': 'qevent.h',
'QIconDragEvent': 'qevent.h',
'QIconEngineFactoryInterface': 'qiconengineplugin.h',
'QIconEngineFactoryInterfaceV2': 'qiconengineplugin.h',
'QIconEnginePluginV2': 'qiconengineplugin.h',
'QImageIOHandlerFactoryInterface': 'qimageiohandler.h',
'QImageTextKeyLang': 'qimage.h',
'QInputContextFactoryInterface': 'qinputcontextplugin.h',
'QInputMethodEvent': 'qevent.h',
'QItemEditorCreator': 'qitemeditorfactory.h',
'QItemEditorCreatorBase': 'qitemeditorfactory.h',
'QGraphicsSceneHoverEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneResizeEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneDragDropEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneContextMenuEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneHelpEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneMoveEvent': 'qgraphicssceneevent.h',
'QGraphicsTextItem': 'qgraphicsitem.h',
'QGraphicsSimpleTextItem': 'qgraphicsitem.h',
'QGraphicsRotation': 'qgraphicstransform.h',
'QGraphicsObject': 'qgraphicsitem.h',
'QIntValidator': 'qvalidator.h',
'QX11EmbedContainer': 'qx11embed_x11.h',
'QPolygonF': 'qpolygon.h',
'QGraphicsSceneWheelEvent': 'qgraphicssceneevent.h',
'QGraphicsSceneMouseEvent': 'qgraphicssceneevent.h',
'QResizeEvent': 'qevent.h',
'QMouseEvent': 'qevent.h',
'QKeyEvent': 'qevent.h',
'QWheelEvent': 'qevent.h',
'QDragEnterEvent': 'qevent.h',
'QWindowStateChangeEvent': 'qevent.h',
'QtEvents': 'qevent.h',
'QTextLine': 'qtextlayout.h',
'QTextFrame': 'qtextobject.h',
'QTextCharFormat': 'qtextformat.h',
'QUndoCommand': 'qundostack.h',
'QTouchEvent': 'qevent.h',
'QDropEvent': 'qevent.h',
'QMoveEvent': 'qevent.h',
'QMacStyle': 'qmacstyle_mac.h',
'QStyleOptionGroupBox': 'qstyleoption.h',
'QStyleOptionComboBox': 'qstyleoption.h',
'QStyleOptionSpinBox': 'qstyleoption.h',
'QStyleOptionComplex': 'qstyleoption.h',
'QStyleOptionButton': 'qstyleoption.h',
'QStyleOptionFrame': 'qstyleoption.h',
'QStyleOptionFrameV2': 'qstyleoption.h',
'QStyleOptionFrameV3': 'qstyleoption.h',
'QStyleOptionProgressBarV2': 'qstyleoption.h',
'QStyleOptionToolBar': 'qstyleoption.h',
'QStyleOptionSlider': 'qstyleoption.h',
'QStyleOptionToolButton': 'qstyleoption.h',
'QStyleOptionRubberBand': 'qstyleoption.h',
'QStyleOptionTabV3': 'qstyleoption.h',
'QStyleOptionTabBarBase': 'qstyleoption.h',
'QTextListFormat': 'qtextformat.h',
'QGradient': 'qbrush.h',
'QFontMetricsF': 'qfontmetrics.h',
'QStyleOptionTitleBar': 'qstyleoption.h',
'QStyleOptionFocusRect': 'qstyleoption.h',
'QWidgetItem': 'qlayoutitem.h',
'QShortcutEvent': 'qevent.h',
'QActionEvent': 'qevent.h',
'QStandardItem': 'qstandarditemmodel.h',
'QAbstractUndoItem': 'qtextdocument.h',
'QWidgetList': 'qwindowdefs.h',
'QListWidgetItem': 'qlistwidget.h',
'QCloseEvent': 'qevent.h',
'QHideEvent': 'qevent.h',
'QShowEvent': 'qevent.h',
'QDragMoveEvent': 'qevent.h',
'QHelpEvent': 'qevent.h',
'QDoubleValidator': 'qvalidator.h',
'QTreeWidgetItem': 'qtreewidget.h',
'QTextTableFormat': 'qtextformat.h',
'QIconEngineV2': 'qiconengine.h',
'QItemSelection': 'qitemselectionmodel.h',
'QContextMenuEvent': 'qevent.h',
'QPaintEvent': 'qevent.h',
'QHoverEvent': 'qevent.h',
'QInputEvent': 'qevent.h',
'QDragLeaveEvent': 'qevent.h',
'QFileOpenEvent': 'qevent.h',
'QAbstractGraphicsShapeItem': 'qgraphicsitem.h',
'QItemSelectionRange': 'qitemselectionmodel.h',
'QImageIOPlugin': 'qimageiohandler.h',
'QFocusEvent': 'qevent.h',
'QLinearGradient': 'qbrush.h',
'QStyleOptionViewItem': 'qstyleoption.h',
'QStyleOptionViewItemV2': 'qstyleoption.h',
'QStyleOptionViewItemV3': 'qstyleoption.h',
'QStyleOptionViewItemV4': 'qstyleoption.h',
'QStyleOptionHeader': 'qstyleoption.h',
'QTimeEdit': 'qdatetimeedit.h',
'QStyleOptionMenuItem': 'qstyleoption.h',
'QStyleOptionGraphicsItem': 'qstyleoption.h',
'QTextBlock': 'qtextobject.h',
'QTableWidgetItem': 'qtablewidget.h',
'QMimeSource': 'qmime.h',
'QDateEdit': 'qdatetimeedit.h',
'QWizardPage': 'qwizard.h',
'QRadialGradient': 'qbrush.h',
'QRegExpValidator': 'qvalidator.h',
'QAccessible2Interface': 'qaccessible2.h',
'QAccessibleActionInterface': 'qaccessible2.h',
'QAccessibleApplication': 'qaccessibleobject.h',
'QAccessibleBridgeFactoryInterface': 'qaccessiblebridge.h',
'QAccessibleBridgePlugin': 'qaccessiblebridge.h',
'QAccessibleEditableTextInterface': 'qaccessible2.h',
'QAccessibleFactoryInterface': 'qaccessibleplugin.h',
'QAccessibleImageInterface': 'qaccessible2.h',
'QAccessibleEvent': 'qaccessible.h',
'QAccessibleInterface': 'qaccessible.h',
'QAccessibleInterfaceEx': 'qaccessible.h',
'QAccessibleObjectEx': 'qaccessibleobject.h',
'QAccessibleSimpleEditableTextInterface': 'qaccessible2.h',
'QAccessibleTable2CellInterface': 'qaccessible2.h',
'QAccessibleTable2Interface': 'qaccessible2.h',
'QAccessibleTableInterface': 'qaccessible2.h',
'QMacCocoaViewContainer': 'qmaccocoaviewcontainer_mac.h',
# 'QPlatformIntegrationPlugin': 'qplatformintegrationplugin_qpa.h',
# 'QPlatformIntegration': 'qplatformintegration_qpa.h',
},
'QtDBus': {
'QDBusPendingCallWatcher': 'qdbuspendingcall.h',
'QDBusObjectPath': 'qdbusextratypes.h',
'QDBusAbstractInterfaceBase': 'qdbusabstractinterface.h',
'QDBusPendingReplyData': 'qdbuspendingreply.h',
'QDBusSignature': 'qdbusextratypes.h',
'QDBusVariant': 'qdbusextratypes.h',
},
'QtOpenGL': {
'QGLWidget': 'qgl.h',
'QGLContext': 'qgl.h',
'QGLShader': 'qglshaderprogram.h',
},
'QtXml': {
'QXmlSimpleReader': 'qxml.h',
'QDomAttr': 'qdom.h',
'QDomDocument': 'qdom.h',
'QDomElement': 'qdom.h',
'QDomNode': 'qdom.h',
'QXmlStreamAttribute': 'qxmlstream.h',
'QXmlAttributes': 'qxml.h',
'QXmlDefaultHandler': 'qxml.h',
'QXmlParseException': 'qxml.h',
'QXmlLocator': 'qxml.h',
'QXmlContentHandler': 'qxml.h',
'QXmlInputSource': 'qxml.h',
'QDomNodeList': 'qdom.h',
'QDomText': 'qdom.h',
'QDomNamedNodeMap': 'qdom.h',
},
'QtXmlPatterns': {
'QXmlItem': 'qabstractxmlnodemodel.h',
'QXmlNodeModelIndex': 'qabstractxmlnodemodel.h',
},
'QtDeclarative': {
'QDeclarativeListProperty': 'qdeclarativelist.h',
},
'QtNetwork': {
'QNetworkProxyFactory': 'qnetworkproxy.h',
'QNetworkProxyQuery': 'qnetworkproxy.h',
'QHttpRequestHeader': 'qhttp.h',
'QHttpResponseHeader': 'qhttp.h',
'QHttpHeader': 'qhttp.h',
'QNetworkConfigurationManager': 'qnetworkconfigmanager.h',
},
'QtTest': {
'QEventSizeOfChecker': 'qtestspontaneevent.h',
'QSpontaneKeyEvent': 'qtestspontaneevent.h',
'QTestAccessibility': 'qtestaccessible.h',
'QTestAccessibilityEvent': 'qtestaccessible.h',
'QTestDelayEvent': 'qtestevent.h',
'QTestEventList': 'qtestevent.h',
'QTestKeyClicksEvent': 'qtestevent.h',
'QTestKeyEvent': 'qtestevent.h',
'QTestMouseEvent': 'qtestevent.h',
'QtTestGui': 'qtest_gui.h',
},
'QtDesigner': {
'QDesignerWidgetBoxInterface': 'abstractwidgetbox.h',
'QDesignerPropertyEditorInterface': 'abstractpropertyeditor.h',
'QDesignerFormWindowManagerInterface': 'abstractformwindowmanager.h',
'QDesignerMetaDataBaseInterface': 'abstractmetadatabase.h',
'QDesignerWidgetDataBaseInterface': 'abstractwidgetdatabase.h',
'QDesignerWidgetFactoryInterface': 'abstractwidgetfactory.h',
'QDesignerObjectInspectorInterface': 'abstractobjectinspector.h',
'QDesignerIntegrationInterface': 'abstractintegration.h',
'QDesignerFormEditorInterface': 'abstractformeditor.h',
'QDesignerPromotionInterface': 'abstractpromotioninterface.h',
'QDesignerFormWindowInterface': 'abstractformwindow.h',
'QDesignerLayoutDecorationExtension': 'layoutdecoration.h',
'QDesignerBrushManagerInterface': 'abstractbrushmanager.h',
'QAbstractFormBuilder': 'abstractformbuilder.h',
'QDesignerIconCacheInterface': 'abstracticoncache.h',
'QDesignerPropertySheetExtension': 'propertysheet.h',
'QDesignerContainerExtension': 'container.h',
'QDesignerActionEditorInterface': 'abstractactioneditor.h',
'QDesignerCustomWidgetInterface': 'customwidget.h',
'QDesignerLanguageExtension': 'abstractlanguage.h',
'QDesignerResourceBrowserInterface': 'abstractresourcebrowser.h',
'QDesignerMemberSheetExtension': 'membersheet.h',
'QDesignerTaskMenuExtension': 'taskmenu.h',
'QDesignerFormWindowCursorInterface': 'abstractformwindowcursor.h',
'QDesignerWidgetDataBaseItemInterface': 'abstractwidgetdatabase.h',
'QDesignerCustomWidgetCollectionInterface': 'customwidget.h',
'QDesignerDynamicPropertySheetExtension': 'dynamicpropertysheet.h',
'QDesignerFormEditorPluginInterface': 'abstractformeditorplugin.h',
'QDesignerFormWindowToolInterface': 'abstractformwindowtool.h',
'QDesignerExtraInfoExtension': 'extrainfo.h',
'QExtensionFactory': 'default_extensionfactory.h',
'QDesignerMetaDataBaseItemInterface': 'abstractmetadatabase.h',
'QDesignerDnDItemInterface': 'abstractdnditem.h',
'QDesignerComponents': 'qdesigner_components.h',
},
'QtHelp': {
'QHelpIndexModel': 'qhelpindexwidget.h',
'QHelpContentModel': 'qhelpcontentwidget.h',
},
'QtWebKit': {
'QWebHitTestResult': 'qwebframe.h',
},
}
if '--printmap' in sys.argv:
for component in incmap:
for key in incmap[component]:
print('katie_generate_obsolete(%s.h %s %s)' % (key.lower(), component, incmap[component][key]))
sys.exit(0)
cppfiles = []
cmakefiles = []
for root, dirs, files in os.walk(os.curdir):
for f in files:
if f.endswith(('.cpp', '.cc', '.hpp', '.h')) and not '--no-cpp' in sys.argv:
cppfiles.append('%s/%s' % (root, f))
if f.endswith(('CMakeLists.txt', '.cmake')) and not '--no-cmake' in sys.argv:
cmakefiles.append('%s/%s' % (root, f))
for cpp in cppfiles:
cpp = os.path.realpath(cpp)
cppbase = os.path.basename(cpp)
with open(cpp, 'r') as f:
cppcontent = f.read()
replaced = []
for key in incmap:
for key2 in incmap[key]:
inc1 = '%s/%s' % (key, key2)
inc2 = key2
replacement = '#include <%s/%s>' % (key, incmap[key][key2])
# print(inc1, inc2, replacement)
for match in re.findall('(#include [<|"](?:%s|%s)[>|"])' % (inc1, inc2), cppcontent):
with open(cpp, 'w') as f:
if replacement in replaced:
replacement = ""
print('removing inclusion of %s in %s' % (match, cpp))
else:
print('adjusting inclusion of %s with %s in %s' % (match, replacement, cpp))
cppcontent = cppcontent.replace(match, replacement)
f.write(cppcontent)
replaced.append(replacement)
# TODO: second run on same files can cause trouble
for cmake in cmakefiles:
cmake = os.path.realpath(cmake)
cmakebase = os.path.basename(cmake)
with open(cmake, 'r') as f:
cmakecontent = f.read()
replacement = '''
find_package(Katie)
if(NOT KATIE_FOUND)
find_package(Qt4 %s) ## AUTOADJUSTED
endif()
'''
for match in re.findall('(find_package.*\(.*Qt4(.*)\).*)', cmakecontent):
if 'AUTOADJUSTED' in match[0]:
continue
print(match)
with open(cmake, 'w') as f:
print('adjusting package finding in %s' % cmake)
# and here is the trouble..
cmakecontent = cmakecontent.replace(match[0], replacement % match[1])
f.write(cmakecontent)

Some files were not shown because too many files have changed in this diff Show more