diff options
Diffstat (limited to 'tests/auto/cmake/test_generating_cpp_exports')
10 files changed, 151 insertions, 0 deletions
diff --git a/tests/auto/cmake/test_generating_cpp_exports/.cmake.conf b/tests/auto/cmake/test_generating_cpp_exports/.cmake.conf new file mode 100644 index 0000000000..10bc1fd407 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/.cmake.conf @@ -0,0 +1 @@ +set(QT_REPO_MODULE_VERSION "6.8.0") diff --git a/tests/auto/cmake/test_generating_cpp_exports/CMakeLists.txt b/tests/auto/cmake/test_generating_cpp_exports/CMakeLists.txt new file mode 100644 index 0000000000..564d23ca05 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/CMakeLists.txt @@ -0,0 +1,24 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.16) + +include(.cmake.conf) + +project(TestGeneratingCppExports + DESCRIPTION "Test of the generating of cpp exports" + HOMEPAGE_URL "https://qt.io/" + LANGUAGES CXX C + VERSION "${QT_REPO_MODULE_VERSION}" +) + +find_package(Qt6 COMPONENTS Core BuildInternals Test CONFIG REQUIRED) +qt_internal_project_setup() + +qt_build_repo_begin() + +add_subdirectory(test_autogenerating_cpp_exports) +add_subdirectory(test_autogenerating_cpp_exports_custom_name) + +qt_build_repo_post_process() +qt_build_repo_end() diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/CMakeLists.txt b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/CMakeLists.txt new file mode 100644 index 0000000000..0e446dd108 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/CMakeLists.txt @@ -0,0 +1,22 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +qt_internal_add_module(TestAutogeneratingCppExports + NO_UNITY_BUILD + GENERATE_CPP_EXPORTS + SOURCES + module_api.h + module_api.cpp + PUBLIC_LIBRARIES + Qt::Core +) + +qt_internal_extend_target(TestAutogeneratingCppExports + CONDITION GCC OR MINGW + COMPILE_OPTIONS + -fvisibility=hidden +) + +add_executable(TestAutogeneratingCppExportsApp use_api.cpp) +target_link_libraries(TestAutogeneratingCppExportsApp PRIVATE TestAutogeneratingCppExports) +set_target_properties(TestAutogeneratingCppExportsApp PROPERTIES UNITY_BUILD OFF) diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.cpp b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.cpp new file mode 100644 index 0000000000..e77895e719 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.cpp @@ -0,0 +1,9 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "module_api.h" + +void TestApi::dummy() +{ + // Do nothing +} diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.h b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.h new file mode 100644 index 0000000000..6c8112c617 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/module_api.h @@ -0,0 +1,20 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef MODULE_API_H +#define MODULE_API_H + +#if 0 +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + +#include <QtTestAutogeneratingCppExports/qttestautogeneratingcppexportsexports.h> + +struct Q_TESTAUTOGENERATINGCPPEXPORTS_EXPORT TestApi +{ + TestApi() = default; + void dummy(); +}; + +#endif //MODULE_API_H diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/use_api.cpp b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/use_api.cpp new file mode 100644 index 0000000000..f84931300f --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports/use_api.cpp @@ -0,0 +1,11 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "module_api.h" + +int main(int, char*[]) +{ + TestApi api; + api.dummy(); + return 0; +} diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/CMakeLists.txt b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/CMakeLists.txt new file mode 100644 index 0000000000..8473979c70 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/CMakeLists.txt @@ -0,0 +1,24 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +qt_internal_add_module(TestAutogeneratingCppExportsCustomName + NO_UNITY_BUILD + GENERATE_CPP_EXPORTS + CPP_EXPORT_HEADER_BASE_NAME + "customname_exports" + SOURCES + module_api.h + module_api.cpp + PUBLIC_LIBRARIES + Qt::Core +) + +qt_internal_extend_target(TestAutogeneratingCppExportsCustomName + CONDITION GCC OR MINGW + COMPILE_OPTIONS + -fvisibility=hidden +) + +add_executable(testapp2 use_api.cpp) +target_link_libraries(testapp2 PRIVATE TestAutogeneratingCppExportsCustomName) +set_target_properties(testapp2 PROPERTIES UNITY_BUILD OFF) diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.cpp b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.cpp new file mode 100644 index 0000000000..e77895e719 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.cpp @@ -0,0 +1,9 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "module_api.h" + +void TestApi::dummy() +{ + // Do nothing +} diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.h b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.h new file mode 100644 index 0000000000..62c1b31ac4 --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/module_api.h @@ -0,0 +1,20 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef MODULE_API_H +#define MODULE_API_H + +#if 0 +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + +#include <QtTestAutogeneratingCppExportsCustomName/customname_exports.h> + +struct Q_TESTAUTOGENERATINGCPPEXPORTSCUSTOMNAME_EXPORT TestApi +{ + TestApi() = default; + void dummy(); +}; + +#endif //MODULE_API_H diff --git a/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/use_api.cpp b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/use_api.cpp new file mode 100644 index 0000000000..f84931300f --- /dev/null +++ b/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name/use_api.cpp @@ -0,0 +1,11 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "module_api.h" + +int main(int, char*[]) +{ + TestApi api; + api.dummy(); + return 0; +} |