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 # Enable high-entropy ASLR for 64-bit 0068 # The image base has to be >4GB for HEASLR to be enabled. 0069 # The values used here are kind of arbitrary. 0070 set(SECURITY_EXE_LINKER_FLAGS "${SECURITY_EXE_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000") 0071 set(SECURITY_SHARED_LINKER_FLAGS "${SECURITY_SHARED_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x180000000") 0072 set(SECURITY_MODULE_LINKER_FLAGS "${SECURITY_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x180000000") 0073 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0074 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0075 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0076 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0077 ) 0078 else () 0079 message(WARNING "Linker Security Flags not enabled!") 0080 endif () 0081 elseif (MSVC) 0082 set(SECURITY_C_FLAGS ${CMAKE_C_FLAGS}) 0083 set(SECURITY_CXX_FLAGS ${CMAKE_CXX_FLAGS}) 0084 # Increase the stack size to match MinGW's. Prevents crashes with GMic. 0085 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:4194304") 0086 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /STACK:4194304") 0087 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /STACK:4194304") 0088 option(USE_CONTROL_FLOW_GUARD "Enable Control Flow Guard hardening (MSVC)" ON) 0089 if (USE_CONTROL_FLOW_GUARD) 0090 set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} /guard:cf") 0091 set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} /guard:cf") 0092 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /GUARD:CF") 0093 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /GUARD:CF") 0094 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /GUARD:CF") 0095 endif (USE_CONTROL_FLOW_GUARD) 0096 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0097 -DCMAKE_C_FLAGS=${SECURITY_C_FLAGS} 0098 -DCMAKE_CXX_FLAGS=${SECURITY_CXX_FLAGS} 0099 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0100 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0101 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0102 ) 0103 endif () 0104 0105 if (WIN32) 0106 set(PATCH_COMMAND patch) 0107 endif() 0108 0109 if (APPLE) 0110 string(REPLACE ";" "$<SEMICOLON>" CMAKE_OSX_ARCHITECTURES_ESCAPED "${CMAKE_OSX_ARCHITECTURES}") 0111 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} 0112 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} 0113 -DCMAKE_MACOSX_RPATH=ON 0114 -DKDE_SKIP_RPATH_SETTINGS=ON 0115 -DBUILD_WITH_INSTALL_RPATH=ON 0116 -DAPPLE_SUPPRESS_X11_WARNING=ON 0117 -DCMAKE_FIND_FRAMEWORK=LAST 0118 -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES_ESCAPED} 0119 ) 0120 set(PATCH_COMMAND patch) 0121 endif () 0122 0123 if (ANDROID) 0124 # Increase the stack size to match MinGW's. Prevents crashes with GMic. 0125 set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0126 set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0127 set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,stack-size=4194304") 0128 0129 string(REPLACE ";" "$<SEMICOLON>" _escape_find_root_path "${CMAKE_FIND_ROOT_PATH}") 0130 set (GLOBAL_PROFILE ${GLOBAL_PROFILE} 0131 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 0132 -DANDROID_PLATFORM=${ANDROID_PLATFORM} 0133 -DANDROID_ABI=${ANDROID_ABI} 0134 -DCMAKE_FIND_ROOT_PATH="${_escape_find_root_path}" 0135 -DCMAKE_EXE_LINKER_FLAGS=${SECURITY_EXE_LINKER_FLAGS} 0136 -DCMAKE_SHARED_LINKER_FLAGS=${SECURITY_SHARED_LINKER_FLAGS} 0137 -DCMAKE_MODULE_LINKER_FLAGS=${SECURITY_MODULE_LINKER_FLAGS} 0138 ) 0139 endif() 0140 0141 if (UNIX AND NOT APPLE) 0142 set(LINUX true) 0143 set(PATCH_COMMAND patch) 0144 endif () 0145 0146 # this list must be dependency-ordered 0147 add_subdirectory( ext_gmic )