summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake/test_interface/CMakeLists.txt
blob: bd3217a497f20a110bcaa1136cc6d9884784dc5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

cmake_minimum_required(VERSION 2.8.12)

project(test_interface)

find_package(Qt5Widgets)

set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

add_executable(test_interface_exe WIN32 main.cpp mainwindow.cpp)

# No need to specify include directories, compile definitions, the PIC flag, or to
# link explicitly to Qt5::WinMain.
target_link_libraries(test_interface_exe Qt5::Widgets)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/try_compile-test.cpp"
    "
#include <QString>
#include <QWidget>

int main(int,char**) { QWidget w; w.show(); return 0; }
"
)

# The try_compile works because Qt5::Widgets is listed in the LINK_LIBRARIES,
# which causes the includes, defines and appropriate PIC flag to be used.
try_compile(_TRY_COMPILE_RES "${CMAKE_CURRENT_BINARY_DIR}/try_compile-test"
    "${CMAKE_CURRENT_BINARY_DIR}/try_compile-test.cpp"
    LINK_LIBRARIES Qt5::Widgets
    OUTPUT_VARIABLE TC_OV
)

if (NOT _TRY_COMPILE_RES)
    message(SEND_ERROR "The use of try_compile with Qt5::Widgets failed. The output was :\n${TC_OV}")
endif()