Tue, 06 Jul 2021 10:22:49 +0300
* Image/Bitmap rotate
1658
0d3227cdf96b
* Generator refactoring is complete, bug fixes will follow
cemkalyoncu
parents:
1362
diff
changeset
|
1 | cmake_minimum_required(VERSION 3.0) |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
2 | |
418 | 3 | OPTION(IGNORE_COMPILER_VERSION "Ignore compiler version check" OFF) |
4 | OPTION(IGNORE_COMPILER_VENDOR "Ignore compiler vendor check" OFF) | |
5 | ||
1005 | 6 | set(CMAKE_CXX_STANDARD 14) |
7 | ||
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
8 | #compiler check |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
9 | IF(CMAKE_COMPILER_IS_GNUCXX) |
416 | 10 | EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
11 | ||
1362 | 12 | IF(GCC_VERSION VERSION_LESS 5) |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
13 | IF(IGNORE_COMPILER_VERSION) |
1362 | 14 | MESSAGE(STATUS "Gorgon Library requires GCC 5+") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
15 | ELSE() |
418 | 16 | MESSAGE(STATUS "use cmake -DIGNORE_COMPILER_VERSION=ON to continue anyway") |
1362 | 17 | MESSAGE(FATAL_ERROR "Gorgon Library requires GCC 5+") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
18 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
19 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
20 | ELSEIF(MSVC) |
714 | 21 | IF(MSVC_VERSION VERSION_LESS 14) |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
22 | IF(IGNORE_COMPILER_VERSION) |
1362 | 23 | MESSAGE(STATUS "Gorgon Library requires Visual Studio 2017+") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
24 | ELSE() |
418 | 25 | MESSAGE(STATUS "use cmake -DIGNORE_COMPILER_VERSION=ON to continue anyway") |
1362 | 26 | MESSAGE(FATAL_ERROR "Gorgon Library requires Visual Studio 2017+") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
27 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
28 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
29 | ELSE() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
30 | IF(IGNORE_COMPILER_VENDOR) |
1362 | 31 | MESSAGE(STATUS "Unsupported compiler! Gorgon Library requires GCC 4.8+ OR Visual Studio 2017+") |
953
bb20866ecc63
* Window function for X11 (Resizing has a bug both in DWM and X11)
cemkalyoncu
parents:
870
diff
changeset
|
32 | MESSAGE(STATUS "You may need to manually activate C++14 features") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
33 | ELSE() |
418 | 34 | MESSAGE(STATUS "use cmake -DIGNORE_COMPILER_VENDOR=ON to continue anyway") |
1362 | 35 | MESSAGE(FATAL_ERROR "Unsupported compiler! Gorgon Library requires GCC 5+ OR Visual Studio 2017+") |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
36 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
37 | ENDIF() |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
38 | |
568
776f8dd57c04
* Partial support for reference counting for reference types
cemkalyoncu
parents:
439
diff
changeset
|
39 | |
953
bb20866ecc63
* Window function for X11 (Resizing has a bug both in DWM and X11)
cemkalyoncu
parents:
870
diff
changeset
|
40 | #enable C++14 and 32-bit compilation |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
41 | INCLUDE(CheckCXXCompilerFlag) |
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
42 | IF(CMAKE_COMPILER_IS_GNUCXX) |
1123 | 43 | IF(${FORCE_32_BIT}) |
953
bb20866ecc63
* Window function for X11 (Resizing has a bug both in DWM and X11)
cemkalyoncu
parents:
870
diff
changeset
|
44 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -m32") |
568
776f8dd57c04
* Partial support for reference counting for reference types
cemkalyoncu
parents:
439
diff
changeset
|
45 | SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") |
1123 | 46 | ELSE() |
47 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") | |
568
776f8dd57c04
* Partial support for reference counting for reference types
cemkalyoncu
parents:
439
diff
changeset
|
48 | ENDIF() |
415
001cd0eb15db
* CMake scripts does not need to specify paths anymore
cemkalyoncu
parents:
diff
changeset
|
49 | ENDIF() |
416 | 50 | |
815 | 51 | IF(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") |
1123 | 52 | IF(${FORCE_32_BIT}) |
953
bb20866ecc63
* Window function for X11 (Resizing has a bug both in DWM and X11)
cemkalyoncu
parents:
870
diff
changeset
|
53 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -m32") |
584 | 54 | SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") |
1123 | 55 | ELSE() |
56 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") | |
584 | 57 | ENDIF() |
58 | ENDIF() | |
59 | ||
618 | 60 | #MACRO(FixProject) |
61 | #ENDMACRO() | |
62 | ||
416 | 63 | IF(MSVC) |
1060 | 64 | ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) |
65 | ||
66 | ADD_DEFINITIONS(-DUNICODE) | |
67 | ADD_DEFINITIONS(-D_UNICODE) | |
618 | 68 | |
69 | SET(configs | |
70 | CMAKE_C_FLAGS_DEBUG | |
71 | CMAKE_C_FLAGS_MINSIZEREL | |
72 | CMAKE_C_FLAGS_RELEASE | |
73 | CMAKE_C_FLAGS_RELWITHDEBINFO | |
74 | CMAKE_CXX_FLAGS_DEBUG | |
75 | CMAKE_CXX_FLAGS_MINSIZEREL | |
76 | CMAKE_CXX_FLAGS_RELEASE | |
77 | CMAKE_CXX_FLAGS_RELWITHDEBINFO | |
78 | ) | |
79 | ||
870 | 80 | |
1126 | 81 | add_definitions( "/D_CRT_SECURE_NO_WARNINGS /wd4068 /bigobj" ) |
870 | 82 | |
618 | 83 | FOREACH(config ${configs}) |
84 | IF(${config} MATCHES "/MD") | |
85 | STRING(REGEX REPLACE "/MD" "/MT" ${config} "${${config}}") | |
86 | ENDIF() | |
87 | ENDFOREACH() | |
88 | ||
1123 | 89 | IF(${CMAKE_CL_64} AND ${FORCE_32_BIT}) |
90 | MESSAGE(FATAL_ERROR "Gorgon Library is configured for 32 bits.") | |
416 | 91 | ENDIF() |
418 | 92 | ENDIF() |