90806123e9
qt-cmake-standalone-test uses add_subdirectory call when evaluating the project. This leads to an error if users try to use path to CMakeLists.txt as an argument, instead of directory when configuring standalone tests with qt-cmake-standalone-test. It makes sense to check if the user-specified path points to CMakeLists.txt and cut the filename part when calling add_subdirectory. Pick-to: 6.5 6.4 6.2 Change-Id: I6b9ac0ca8323eaf11f219eb1e6bed3057120a231 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
32 lines
1.1 KiB
CMake
32 lines
1.1 KiB
CMake
# Copyright (C) 2022 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
project(qt_single_test VERSION 6.0.0 LANGUAGES C CXX ASM)
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS BuildInternals Core)
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Main.cmake)
|
|
|
|
# Get the absolute path of the passed-in project dir, relative to the current working directory
|
|
# of the calling script, rather than relative to this source directory.
|
|
# The calling script sets PWD. If not set, just use the passed-in value as-is.
|
|
if(DEFINED PWD)
|
|
get_filename_component(absolute_project_path "${QT_STANDALONE_TEST_PATH}" ABSOLUTE
|
|
BASE_DIR "${PWD}")
|
|
else()
|
|
set(absolute_project_path "${QT_STANDALONE_TEST_PATH}")
|
|
endif()
|
|
|
|
if(NOT IS_DIRECTORY "${absolute_project_path}")
|
|
get_filename_component(filename "${absolute_project_path}" NAME)
|
|
get_filename_component(directory "${absolute_project_path}" DIRECTORY)
|
|
|
|
if(filename STREQUAL "CMakeLists.txt")
|
|
set(absolute_project_path "${directory}")
|
|
endif()
|
|
endif()
|
|
|
|
# Add the test project path as a subdirectory project.
|
|
add_subdirectory("${absolute_project_path}" "build_dir")
|