@@ -4,9 +4,32 @@ set(CMAKE_CXX_STANDARD 11)
4
4
set (CMAKE_CXX_STANDARD_REQUIRED ON )
5
5
set (CMAKE_CXX_EXTENSIONS OFF )
6
6
7
+ # load paths from the user file if exists
8
+ if (EXISTS ${CMAKE_SOURCE_DIR} /CMakeUserPaths.cmake)
9
+ include (${CMAKE_SOURCE_DIR} /CMakeUserPaths.cmake)
10
+
11
+ if (NOT QT_QMAKE_EXECUTABLE)
12
+ find_program (QT_QMAKE_EXECUTABLE NAMES "qmake" "qmake-qt5" "qmake.exe" )
13
+ endif ()
14
+ if (NOT QT_QMAKE_EXECUTABLE)
15
+ message (FATAL_ERROR "you have to set the path to the Qt5 qmake executable" )
16
+ endif ()
17
+
18
+ message (STATUS "QMake found: ${QT_QMAKE_EXECUTABLE} " )
19
+ get_filename_component (QT_QMAKE_PATH ${QT_QMAKE_EXECUTABLE} PATH )
20
+
21
+ set (QT_ROOT ${QT_QMAKE_PATH} /)
22
+ set (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT_QMAKE_PATH} /../lib/cmake/Qt5)
23
+
24
+ message (STATUS "using user paths, new prefix path: ${CMAKE_PREFIX_PATH} " )
25
+ elseif (MSVC )
26
+ message (WARNING "Could not find CMakeUserPaths.cmake - please use this file to specify your install directories (see CMakeUserPathsGit.cmake)" )
27
+ endif ()
28
+
7
29
# make release build, if not specified
8
30
# (from https://blog.kitware.com/cmake-and-the-default-build-type/)
9
31
set (default_build_type "RelWithDebInfo" )
32
+ set (CMAKE_DEBUG_POSTFIX "d" )
10
33
11
34
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
12
35
set (CMAKE_BUILD_TYPE "${default_build_type} " CACHE STRING "Build type" FORCE)
@@ -17,19 +40,23 @@ endif ()
17
40
18
41
# compiler flags
19
42
# TODO: separate GCC and Clang warnings; add more
20
- set (
21
- CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
22
- -Wall \
23
- -Wextra \
24
- -Wshadow \
25
- -Wformat-nonliteral \
26
- -Wformat-security \
27
- -Wnon-virtual-dtor \
28
- " )
29
-
30
- set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og" )
31
-
32
- set (sanitizer_flags "-fsanitize=address -fsanitize=undefined" )
43
+ if (!MSVC )
44
+ set (
45
+ CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
46
+ -Wall \
47
+ -Wextra \
48
+ -Wshadow \
49
+ -Wformat-nonliteral \
50
+ -Wformat-security \
51
+ -Wnon-virtual-dtor \
52
+ " )
53
+
54
+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og" )
55
+ set (sanitizer_flags "-fsanitize=address -fsanitize=undefined" )
56
+
57
+ endif ()
58
+
59
+
33
60
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${sanitizer_flags} " )
34
61
set (CMAKE_MODULE_LINKER_FLAGS_DEBUG
35
62
"${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${sanitizer_flags} " )
@@ -44,15 +71,25 @@ add_definitions(-DQT_NO_KEYWORDS)
44
71
set (CMAKE_AUTOMOC ON )
45
72
46
73
# libheif
47
- find_package (PkgConfig)
48
- pkg_check_modules(libheif REQUIRED libheif>=1.1)
74
+ if (!MSVC )
75
+ find_package (PkgConfig)
76
+ pkg_check_modules(libheif REQUIRED libheif>=1.1)
77
+ else ()
78
+
79
+ find_package (libheif)
80
+ include_directories ( ${libheif_INCLUDE_DIR} )
81
+
82
+ if (!LIBHEIF_FOUND)
83
+ message (FATAL_ERROR "I could not find libheif which is needed. You should add its path to the CMAKE_PREFIX_PATHS" )
84
+ endif ()
85
+
86
+ endif ()
49
87
50
88
#
51
89
# project source
52
90
#
53
91
54
92
set (CMAKE_INCLUDE_CURRENT_DIR ON )
55
-
56
93
set (sources main.cpp qheifhandler.cpp)
57
94
58
95
add_library (qheif MODULE ${sources} )
@@ -61,7 +98,7 @@ target_link_libraries(
61
98
qheif
62
99
PRIVATE
63
100
Qt5::Gui
64
- ${libheif_LIBRARIES}
101
+ ${libheif_LIBRARIES}
65
102
)
66
103
67
104
#
0 commit comments