-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
59 lines (45 loc) · 2.01 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
cmake_minimum_required(VERSION 3.30.0)
project(mingw-env)
enable_language(C ASM CXX)
include(ExternalProject)
include(ProcessorCount)
ProcessorCount(CPU_COUNT)
if(CPU_COUNT EQUAL 0)
set(CPU_COUNT 1)
endif()
if(NOT CMAKE_GENERATOR STREQUAL "Ninja")
message(
FATAL_ERROR "Generator “${CMAKE_GENERATOR}” is unsupported!\nInstall Ninja.")
endif()
set(CPUTUNE "x86-64-v3"
CACHE STRING "Target 'march' to optimize for. Example: x86-64-v3 or native")
set(OPTIM "O3"
CACHE STRING "Target optimization level. Example: O2 or O3")
set(MAKEJOBS ${CPU_COUNT}
CACHE STRING "Number of parallel processes to run for each package build")
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/install"
CACHE PATH "Default install path" FORCE)
endif()
set(MINGW_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/x86_64-w64-mingw32)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/packages/ccache.conf.in
${MINGW_INSTALL_PREFIX}/ccache/ccache.conf @ONLY)
set(CCACHE_CONF ${MINGW_INSTALL_PREFIX}/ccache/ccache.conf)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/toolchain.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/toolchain.cmake @ONLY)
set(TOOLCHAIN_FILE ${CMAKE_CURRENT_BINARY_DIR}/toolchain.cmake)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/meson_cross.txt.in
${CMAKE_CURRENT_BINARY_DIR}/meson_cross.txt @ONLY)
set(MESON_CROSS ${CMAKE_CURRENT_BINARY_DIR}/meson_cross.txt)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/exec.in
${CMAKE_CURRENT_BINARY_DIR}/exec @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/exec-nolto.in
${CMAKE_CURRENT_BINARY_DIR}/exec-nolto @ONLY)
set(EXEC ${CMAKE_CURRENT_BINARY_DIR}/exec)
set(MAKE ${EXEC} make -j${MAKEJOBS})
set(NINJA ${EXEC} ninja -j${MAKEJOBS})
set(EXEC-NLTO ${CMAKE_CURRENT_BINARY_DIR}/exec-nolto)
set(MAKE-NLTO ${EXEC-NLTO} make -j${MAKEJOBS})
set(NINJA-NLTO ${EXEC-NLTO} ninja -j${MAKEJOBS})
string(TIMESTAMP BUILDDATE "%Y%m%d" UTC)
add_subdirectory(packages)