diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 31 | ||||
-rw-r--r-- | Tests/QtAutomoc/Adir/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/QtAutomoc/CMakeLists.txt | 26 | ||||
-rw-r--r-- | Tests/QtAutomoc/calwidget.cpp | 17 | ||||
-rw-r--r-- | Tests/QtAutomoc/defines_test/CMakeLists.txt | 6 | ||||
-rw-r--r-- | Tests/QtAutomoc/defines_test/defines_test.cpp | 38 | ||||
-rw-r--r-- | Tests/QtAutomoc/main.cpp | 2 | ||||
-rw-r--r-- | Tests/RunCMake/include_directories/CMP0021-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/include_directories/CMP0021-stderr.txt | 4 | ||||
-rw-r--r-- | Tests/RunCMake/include_directories/CMP0021.cmake | 9 | ||||
-rw-r--r-- | Tests/RunCMake/include_directories/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/CMakeLists.txt | 44 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/WindowsFormsResx/Header.h | 0 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp | 1 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h | 78 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.resx | 61 | ||||
-rw-r--r-- | Tests/VSWindowsFormsResx/WindowsFormsResx/Source.cpp | 4 |
17 files changed, 310 insertions, 15 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 2649886..0b221e8 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1003,21 +1003,35 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/QtAutomocNoQt") - if(QT4_WORKS AND QT_QTGUI_FOUND) - add_test(QtAutomoc ${CMAKE_CTEST_COMMAND} + find_package(Qt5Widgets QUIET NO_MODULE) + if(Qt5Widgets_FOUND) + add_test(Qt5Automoc ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/QtAutomoc" - "${CMake_BINARY_DIR}/Tests/QtAutomoc" + "${CMake_BINARY_DIR}/Tests/Qt5Automoc" ${build_generator_args} --build-project QtAutomoc - --build-exe-dir "${CMake_BINARY_DIR}/Tests/QtAutomoc" + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt5Automoc" --force-new-ctest-process - --build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} + --build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=5 --test-command ${CMAKE_CTEST_COMMAND} -V ) - list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/QtAutomoc") + list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5Automoc") endif() if(QT4_WORKS AND QT_QTGUI_FOUND) + add_test(Qt4Automoc ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/QtAutomoc" + "${CMake_BINARY_DIR}/Tests/Qt4Automoc" + ${build_generator_args} + --build-project QtAutomoc + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt4Automoc" + --force-new-ctest-process + --build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=4 + --test-command ${CMAKE_CTEST_COMMAND} -V + ) + list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4Automoc") + add_test(Qt4Targets ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/Qt4Targets" @@ -1448,6 +1462,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ADD_TEST_MACRO(SBCS SBCS) endif() + if(NOT "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio [6789]( |$)" + AND NOT CMAKE_TEST_GENERATOR_TOOLSET) + ADD_TEST_MACRO(VSWindowsFormsResx VSWindowsFormsResx) + endif() + add_test(VSExternalInclude ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/VSExternalInclude" diff --git a/Tests/QtAutomoc/Adir/CMakeLists.txt b/Tests/QtAutomoc/Adir/CMakeLists.txt index 1712223..a1c36ff 100644 --- a/Tests/QtAutomoc/Adir/CMakeLists.txt +++ b/Tests/QtAutomoc/Adir/CMakeLists.txt @@ -4,5 +4,5 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) add_library(libA SHARED libA.cpp) -target_link_libraries(libA LINK_PUBLIC Qt4::QtCore) +target_link_libraries(libA LINK_PUBLIC ${QT_QTCORE_TARGET}) generate_export_header(libA) diff --git a/Tests/QtAutomoc/CMakeLists.txt b/Tests/QtAutomoc/CMakeLists.txt index fd624c8..69e52ac 100644 --- a/Tests/QtAutomoc/CMakeLists.txt +++ b/Tests/QtAutomoc/CMakeLists.txt @@ -2,9 +2,31 @@ cmake_minimum_required(VERSION 2.8) project(QtAutomoc) -find_package(Qt4 REQUIRED) +if (QT_TEST_VERSION STREQUAL 4) + find_package(Qt4 REQUIRED) + + # Include this directory before using the UseQt4 file. + add_subdirectory(defines_test) + + include(UseQt4) + + set(QT_QTCORE_TARGET Qt4::QtCore) +else() + if (NOT QT_TEST_VERSION STREQUAL 5) + message(SEND_ERROR "Invalid Qt version specified.") + endif() + find_package(Qt5Widgets REQUIRED) + + set(QT_QTCORE_TARGET Qt5::Core) + + include_directories(${Qt5Widgets_INCLUDE_DIRS}) + set(QT_LIBRARIES Qt5::Widgets) + + if(Qt5_POSITION_INDEPENDENT_CODE) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + endif() +endif() -include(UseQt4) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/Tests/QtAutomoc/calwidget.cpp b/Tests/QtAutomoc/calwidget.cpp index 24f3b4e..cbfa5a8 100644 --- a/Tests/QtAutomoc/calwidget.cpp +++ b/Tests/QtAutomoc/calwidget.cpp @@ -38,7 +38,14 @@ ** ****************************************************************************/ - #include <QtGui> + #include <QComboBox> + #include <QGridLayout> + #include <QLabel> + #include <QGroupBox> + #include <QCheckBox> + #include <QDateEdit> + #include <QCalendarWidget> + #include <QTextCharFormat> #include "calwidget.h" @@ -414,10 +421,10 @@ QComboBox *Window::createColorComboBox() { QComboBox *comboBox = new QComboBox; - comboBox->addItem(tr("Red"), Qt::red); - comboBox->addItem(tr("Blue"), Qt::blue); - comboBox->addItem(tr("Black"), Qt::black); - comboBox->addItem(tr("Magenta"), Qt::magenta); + comboBox->addItem(tr("Red"), QColor(Qt::red)); + comboBox->addItem(tr("Blue"), QColor(Qt::blue)); + comboBox->addItem(tr("Black"), QColor(Qt::black)); + comboBox->addItem(tr("Magenta"), QColor(Qt::magenta)); return comboBox; } diff --git a/Tests/QtAutomoc/defines_test/CMakeLists.txt b/Tests/QtAutomoc/defines_test/CMakeLists.txt new file mode 100644 index 0000000..ad4e684 --- /dev/null +++ b/Tests/QtAutomoc/defines_test/CMakeLists.txt @@ -0,0 +1,6 @@ + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +add_executable(defines_test defines_test.cpp) +set_target_properties(defines_test PROPERTIES AUTOMOC TRUE) +target_link_libraries(defines_test Qt4::QtGui) diff --git a/Tests/QtAutomoc/defines_test/defines_test.cpp b/Tests/QtAutomoc/defines_test/defines_test.cpp new file mode 100644 index 0000000..2836d35 --- /dev/null +++ b/Tests/QtAutomoc/defines_test/defines_test.cpp @@ -0,0 +1,38 @@ + +#include <QObject> + +#ifdef QT_GUI_LIB +#include <QTextDocument> + +class SomeDocument : public QTextDocument +{ + Q_OBJECT + +Q_SIGNALS: + void someSig(); +}; +#endif + +#ifdef QT_CORE_LIB +class SomeObject : public QObject +{ + Q_OBJECT + +Q_SIGNALS: + void someSig(); +}; +#endif + +int main(int argc, char **argv) +{ +#ifdef QT_CORE_LIB + QMetaObject sosmo = SomeObject::staticMetaObject; +#endif +#ifdef QT_GUI_LIB + QMetaObject sdsmo = SomeDocument::staticMetaObject; +#endif + + return 0; +} + +#include "defines_test.moc" diff --git a/Tests/QtAutomoc/main.cpp b/Tests/QtAutomoc/main.cpp index d952171..bd80180 100644 --- a/Tests/QtAutomoc/main.cpp +++ b/Tests/QtAutomoc/main.cpp @@ -38,7 +38,7 @@ ** ****************************************************************************/ -#include <QtGui> +#include <QApplication> #include "codeeditor.h" #include "calwidget.h" diff --git a/Tests/RunCMake/include_directories/CMP0021-result.txt b/Tests/RunCMake/include_directories/CMP0021-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/include_directories/CMP0021-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/include_directories/CMP0021-stderr.txt b/Tests/RunCMake/include_directories/CMP0021-stderr.txt new file mode 100644 index 0000000..c0781e7 --- /dev/null +++ b/Tests/RunCMake/include_directories/CMP0021-stderr.txt @@ -0,0 +1,4 @@ +CMake Error in CMakeLists.txt: + Found relative path while evaluating include directories of "userTarget": + + "foo" diff --git a/Tests/RunCMake/include_directories/CMP0021.cmake b/Tests/RunCMake/include_directories/CMP0021.cmake new file mode 100644 index 0000000..f18666b --- /dev/null +++ b/Tests/RunCMake/include_directories/CMP0021.cmake @@ -0,0 +1,9 @@ +enable_language(CXX) + +cmake_policy(SET CMP0021 NEW) + +add_library(testTarget "${CMAKE_CURRENT_SOURCE_DIR}/empty.cpp") +set_property(TARGET testTarget PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$<1:foo>") + +add_library(userTarget "${CMAKE_CURRENT_SOURCE_DIR}/empty.cpp") +target_include_directories(userTarget PRIVATE $<TARGET_PROPERTY:testTarget,INTERFACE_INCLUDE_DIRECTORIES>) diff --git a/Tests/RunCMake/include_directories/RunCMakeTest.cmake b/Tests/RunCMake/include_directories/RunCMakeTest.cmake index f516086..520dd44 100644 --- a/Tests/RunCMake/include_directories/RunCMakeTest.cmake +++ b/Tests/RunCMake/include_directories/RunCMakeTest.cmake @@ -8,3 +8,4 @@ run_cmake(BinaryDirectoryInInterface) run_cmake(RelativePathInInterface) run_cmake(ImportedTarget) run_cmake(RelativePathInGenex) +run_cmake(CMP0021) diff --git a/Tests/VSWindowsFormsResx/CMakeLists.txt b/Tests/VSWindowsFormsResx/CMakeLists.txt new file mode 100644 index 0000000..a313ac2 --- /dev/null +++ b/Tests/VSWindowsFormsResx/CMakeLists.txt @@ -0,0 +1,44 @@ +# +# Example CMakeLists.txt file to demonstrate how to make a designable Windows Forms project with CMake. +# +# Code modifications and example by John Farrier, john.farrier@helleboreconsulting.com +# + +cmake_minimum_required(VERSION 2.8.10) + +# Project Name +project(VSWindowsFormsResx CXX) + +include(CheckFunctionExists) +include(CheckCXXSourceCompiles) +include(CheckIncludeFile) + +# Note: The designable form is assumed to have a .h extension as is default in Visual Studio. +# Node: The designable form is assumed to have a .resx file with the same name and path (save extension) as is default in Visual Studio + +set(TARGET_H + WindowsFormsResx/MyForm.h + WindowsFormsResx/Header.h + ) + +set(TARGET_SRC + WindowsFormsResx/MyForm.cpp + WindowsFormsResx/Source.cpp + ) + +set(TARGET_RESX + WindowsFormsResx/MyForm.resx + ) + +set(TARGET_LIBRARIES ${SYSLIBS}) +add_executable(${PROJECT_NAME} ${TARGET_SRC} ${TARGET_H} ${TARGET_RESX}) + +# Note: The property VS_GLOBAL_KEYWORD must be set. +set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_KEYWORD "ManagedCProj") + +# Note: The property VS_DOTNET_REFERENCES must be set. +set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES "System" "System.Data" "System.Drawing" "System.Windows.Forms" "System.Xml") + +# Note: Modification of compiler flags is required for CLR compatibility now that we are using .resx files. +string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/Header.h b/Tests/VSWindowsFormsResx/WindowsFormsResx/Header.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/Header.h diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp new file mode 100644 index 0000000..154e268 --- /dev/null +++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp @@ -0,0 +1 @@ +#include "MyForm.h"
\ No newline at end of file diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h new file mode 100644 index 0000000..16222c5 --- /dev/null +++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.h @@ -0,0 +1,78 @@ +#pragma once + +namespace Farrier { + + using namespace System; + using namespace System::ComponentModel; + using namespace System::Collections; + using namespace System::Windows::Forms; + using namespace System::Data; + using namespace System::Drawing; + + /// <summary> + /// Summary for MyForm + /// </summary> + public ref class MyForm : public System::Windows::Forms::Form + { + public: + MyForm(void) + { + InitializeComponent(); + // + //TODO: Add the constructor code here + // + } + + protected: + /// <summary> + /// Clean up any resources being used. + /// </summary> + ~MyForm() + { + if (components) + { + delete components; + } + } + private: System::Windows::Forms::Button^ button1; + protected: + + private: + /// <summary> + /// Required designer variable. + /// </summary> + System::ComponentModel::Container ^components; + +#pragma region Windows Form Designer generated code + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + void InitializeComponent(void) + { + this->button1 = (gcnew System::Windows::Forms::Button()); + this->SuspendLayout(); + // + // button1 + // + this->button1->Location = System::Drawing::Point(13, 13); + this->button1->Name = L"button1"; + this->button1->Size = System::Drawing::Size(75, 23); + this->button1->TabIndex = 0; + this->button1->Text = L"button1"; + this->button1->UseVisualStyleBackColor = true; + // + // MyForm + // + this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); + this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; + this->ClientSize = System::Drawing::Size(284, 261); + this->Controls->Add(this->button1); + this->Name = L"MyForm"; + this->Text = L"MyForm"; + this->ResumeLayout(false); + + } +#pragma endregion + }; +} diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.resx b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.resx new file mode 100644 index 0000000..e8ae276 --- /dev/null +++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.resx @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/Source.cpp b/Tests/VSWindowsFormsResx/WindowsFormsResx/Source.cpp new file mode 100644 index 0000000..aee9e2e --- /dev/null +++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/Source.cpp @@ -0,0 +1,4 @@ +int main(int argc, char **argv) +{ + return 0; +} |