qt5base-lts/tests/auto/cmake/test_interface/CMakeLists.txt
Kevin Funk 558f69a18b CMake: Ensure that -fPIC is passed in tests.
CMake newer than 2.8.12 automatically adds the
appropriate flag, but CI still runs 2.8.11.

Change-Id: Ie61375f2feb54a92c9d8f0ed6ad5227a67343bc5
Reviewed-by: Stephen Kelly <ske@ableton.com>
2016-01-11 09:53:37 +00:00

39 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 2.8.11)
project(test_interface)
find_package(Qt5Widgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
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()