mirror of https://github.com/KLayout/klayout.git
72 lines
2.8 KiB
Plaintext
72 lines
2.8 KiB
Plaintext
#---------------------------------------------------------------------------------------
|
||
# File: src/mac_no_agl.pri
|
||
#
|
||
# Aims: To avoid linking "AGL" when building with macOS SDK >= 26 (Xcode 26 or later)
|
||
#
|
||
# Refs: https://github.com/KLayout/klayout/issues/2159
|
||
#
|
||
# Usage: Include this file in all leaf "*.pro" files, for example,
|
||
# ---> src/tl/tl/tl.pro
|
||
# include($$PWD/../../lib.pri)
|
||
# include($$PWD/../../mac_no_agl.pri) <===
|
||
# --- src/tl/unit_tests/unit_tests.pro
|
||
# include($$PWD/../../lib_ut.pri)
|
||
# include($$PWD/../../mac_no_agl.pri) <===
|
||
#---------------------------------------------------------------------------------------
|
||
|
||
macx {
|
||
# Prevent qmake from injecting dependencies from .prl (most reliable protection)
|
||
CONFIG -= link_prl
|
||
|
||
# QMAKE_MAC_SDK examples: "macosx26.0", "macosx26", "macosx27.1"
|
||
SDK_TAG = $$QMAKE_MAC_SDK
|
||
SDK_VER_STR = $$replace(SDK_TAG, "macosx", "")
|
||
SDK_VER_MAJOR = $$section(SDK_VER_STR, ., 0, 0)
|
||
|
||
# Fallback: when parsing fails, also match explicit "macosx26"
|
||
contains(SDK_TAG, "macosx26") {
|
||
SDK_VER_MAJOR = 26
|
||
}
|
||
|
||
# --- fetch actual SDK info when QMAKE_MAC_SDK only gives "macosx" ---
|
||
SDK_PATH = $$system("/usr/bin/xcrun --sdk macosx --show-sdk-path")
|
||
SDK_VER_STR = $$system("/usr/bin/xcrun --sdk macosx --show-sdk-version")
|
||
|
||
# Backup extraction: derive version from SDK path (e.g., MacOSX26.0.sdk → 26.0)
|
||
isEmpty(SDK_VER_STR) {
|
||
SDK_BASE = $$basename($$SDK_PATH) # MacOSX26.0.sdk
|
||
SDK_VER_STR = $$replace(SDK_BASE, "MacOSX", "")
|
||
SDK_VER_STR = $$replace(SDK_VER_STR, ".sdk", "")
|
||
}
|
||
|
||
# Extract only the major version number (e.g., 26.0 → 26)
|
||
SDK_VER_MAJOR = $$section(SDK_VER_STR, ., 0, 0)
|
||
|
||
# Debug output
|
||
message("DEBUG: SDK_PATH = $$SDK_PATH")
|
||
message("DEBUG: SDK_VER_STR = $$SDK_VER_STR")
|
||
message("DEBUG: SDK_VER_MAJOR = $$SDK_VER_MAJOR")
|
||
|
||
# Apply AGL removal if SDK version >= 26
|
||
greaterThan(SDK_VER_MAJOR, 25) {
|
||
message("Detected macOS SDK >= 26 ($$SDK_VER_STR). Adjusting flags...")
|
||
|
||
# Aggressively remove AGL in case it’s inserted by Qt or manually
|
||
LIBS -= -framework
|
||
LIBS -= AGL
|
||
QMAKE_LIBS_OPENGL -= -framework
|
||
QMAKE_LIBS_OPENGL -= AGL
|
||
QMAKE_LIBS_OPENGL = -framework OpenGL
|
||
|
||
# Set consistent minimum deployment target for modern macOS/Apple Silicon
|
||
QMAKE_CXXFLAGS -= -mmacosx-version-min=10.13
|
||
QMAKE_LFLAGS -= -mmacosx-version-min=10.13
|
||
|
||
QMAKE_MACOSX_DEPLOYMENT_TARGET = 12.0
|
||
QMAKE_CXXFLAGS += -mmacosx-version-min=12.0
|
||
QMAKE_LFLAGS += -mmacosx-version-min=12.0
|
||
}
|
||
|
||
# --- stop execution after printing ---
|
||
#error("DEBUG STOP: printed all mac_no_agl.pri variables, stopping qmake.")
|
||
} |