Warning, /graphics/krita/3rdparty_plugins/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 project (krita-external-plugins) 0002 0003 message( STATUS "Preparing Krita external plugins build...") 0004 0005 # 0006 # Build external Krita plugins. 0007 # Parameters: EXTERNALS_DOWNLOAD_DIR place to download all packages 0008 # INSTALL_ROOT place to install everything to 0009 # MXE_TOOLCHAIN: the toolchain file to cross-compile using MXE 0010 # 0011 # Example usage: cmake ..\kritadeposx -DEXTERNALS_DOWNLOAD_DIR=/dev2/d -DINSTALL_ROOT=/dev2/i -DWIN64_BUILD=TRUE -DBOOST_LIBRARYDIR=/dev2/i/lib -G "Visual Studio 11 Win64" 0012 0013 if(APPLE) 0014 execute_process(COMMAND sysctl -n hw.optional.arm64 OUTPUT_VARIABLE apple_has_arm64_optional) 0015 if(apple_has_arm64_optional) 0016 message(STATUS "Building on macos arm") 0017 cmake_minimum_required(VERSION 3.19.3) 0018 else() 0019 cmake_minimum_required(VERSION 3.7.2) 0020 endif() 0021 else(APPLE) 0022 cmake_minimum_required(VERSION 3.7.0 FATAL_ERROR) 0023 endif() 0024 0025 if(NOT SUBMAKE_JOBS) 0026 set(SUBMAKE_JOBS 1) 0027 endif() 0028 0029 if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) 0030 message(FATAL_ERROR "Compiling in the source directory is not supported. Use for example 'mkdir build; cd build; cmake ..'.") 0031 endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) 0032 0033 # Tools must be obtained to work with: 0034 include (ExternalProject) 0035 0036 # allow specification of a directory with pre-downloaded 0037 # requirements 0038 message( STATUS "EXTERNALS_DOWNLOAD_DIR: ${EXTERNALS_DOWNLOAD_DIR}") 0039 if(NOT IS_DIRECTORY ${EXTERNALS_DOWNLOAD_DIR}) 0040 message(FATAL_ERROR "No externals download dir set. Use -DEXTERNALS_DOWNLOAD_DIR") 0041 endif() 0042 0043 message( STATUS "INSTALL_ROOT: ${INSTALL_ROOT}") 0044 if(NOT IS_DIRECTORY ${INSTALL_ROOT}) 0045 message(FATAL_ERROR "No install dir set. Use -DINSTALL_ROOT") 0046 endif() 0047 0048 set(TOP_INST_DIR ${INSTALL_ROOT}) 0049 set(EXTPREFIX "${TOP_INST_DIR}") 0050 0051 message( STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}") 0052 message( STATUS "CMAKE_CL_64: ${CMAKE_CL_64}") 0053 message( STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") 0054 0055 set(GLOBAL_BUILD_TYPE RelWithDebInfo) 0056 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DBUILD_TESTING=false) 0057 0058 set(SECURITY_EXE_LINKER_FLAGS "") 0059 set(SECURITY_SHARED_LINKER_FLAGS "") 0060 set(SECURITY_MODULE_LINKER_FLAGS "") 0061 if (MINGW) 0062 option(USE_MINGW_HARDENING_LINKER "Enable DEP (NX), ASLR and high-entropy ASLR linker flags (mingw-w64)" ON) 0063 if (USE_MINGW_HARDENING_LINKER) 0064 set(SECURITY_EXE_LINKER_FLAGS "-Wl,--dynamicbase -Wl,--nxcompat -Wl,--disable-auto-image-base") 0065 set(SECURITY_SHARED_LINKER_FLAGS "-Wl,--dynamicbase -Wl,--nxcompat -Wl,--disable-auto-image-base") 0066 set(SECURITY_MODULE_LINKER_FLAGS "-Wl,--dynamicbase -Wl,--nxcompat -Wl,--disable-auto-image-base") 0067 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") 0068 # Enable high-entropy ASLR for 64-bit 0069 # The image base has to be >4GB for HEASLR to be enabled. 0070 # The values used here are kind of arbitrary. 0071 set(SECURITY_EXE_LINKER_FLAGS "${SECURITY_EXE_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000") 0072 set(SECURITY_SHARED_LINKER_FLAGS "${SECURITY_SHARED_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x180000000") 0073 set(SECURITY_MODULE_LINKER_FLAGS "${SECURITY_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x180000000") 0074 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0075 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0076 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0077 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0078 ) 0079 endif () 0080 else () 0081 message(WARNING "Linker Security Flags not enabled!") 0082 endif () 0083 elseif (MSVC) 0084 set(SECURITY_C_FLAGS ${CMAKE_C_FLAGS}) 0085 set(SECURITY_CXX_FLAGS ${CMAKE_CXX_FLAGS}) 0086 # Increase the stack size to match MinGW's. Prevents crashes with GMic. 0087 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:4194304") 0088 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /STACK:4194304") 0089 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /STACK:4194304") 0090 option(USE_CONTROL_FLOW_GUARD "Enable Control Flow Guard hardening (MSVC)" ON) 0091 if (USE_CONTROL_FLOW_GUARD) 0092 set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} /guard:cf") 0093 set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} /guard:cf") 0094 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /GUARD:CF") 0095 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /GUARD:CF") 0096 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /GUARD:CF") 0097 endif (USE_CONTROL_FLOW_GUARD) 0098 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0099 -DCMAKE_C_FLAGS=${SECURITY_C_FLAGS} 0100 -DCMAKE_CXX_FLAGS=${SECURITY_CXX_FLAGS} 0101 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0102 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0103 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0104 ) 0105 endif () 0106 0107 if (WIN32) 0108 set(PATCH_COMMAND myptch) 0109 endif() 0110 0111 if (APPLE) 0112 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0113 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} 0114 -DCMAKE_MACOSX_RPATH=ON 0115 -DKDE_SKIP_RPATH_SETTINGS=ON 0116 -DBUILD_WITH_INSTALL_RPATH=ON 0117 -DAPPLE_SUPPRESS_X11_WARNING=ON) 0118 set(PATCH_COMMAND patch) 0119 endif () 0120 0121 if (ANDROID) 0122 # Increase the stack size to match MinGW's. Prevents crashes with GMic. 0123 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0124 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0125 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0126 0127 string(REPLACE ";" "|" _escape_find_root_path "${CMAKE_FIND_ROOT_PATH}") 0128 set (GLOBAL_PROFILE ${GLOBAL_PROFILE} 0129 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 0130 -DANDROID_PLATFORM=${ANDROID_PLATFORM} 0131 -DANDROID_ABI=${ANDROID_ABI} 0132 -DCMAKE_FIND_ROOT_PATH="${_escape_find_root_path}" 0133 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0134 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0135 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0136 ) 0137 0138 # see: https://github.com/android/ndk/issues/929 0139 unset (CMAKE_SYSROOT) 0140 endif() 0141 0142 if (UNIX AND NOT APPLE) 0143 set(LINUX true) 0144 set(PATCH_COMMAND patch) 0145 endif () 0146 0147 # this list must be dependency-ordered 0148 add_subdirectory( ext_gmic )