aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/toolchain.clang-default.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/toolchain.clang-default.cmake')
-rw-r--r--cmake/toolchain.clang-default.cmake48
1 files changed, 48 insertions, 0 deletions
diff --git a/cmake/toolchain.clang-default.cmake b/cmake/toolchain.clang-default.cmake
new file mode 100644
index 00000000..78c52055
--- /dev/null
+++ b/cmake/toolchain.clang-default.cmake
@@ -0,0 +1,48 @@
+# For normal clang compilation
+
+if(NOT APPLE)
+ set(CMAKE_C_FLAGS "-include ${PROJECT_SOURCE_DIR}/cmake/glibc-compat-symbols.h")
+ set(CMAKE_CXX_FLAGS "-include ${PROJECT_SOURCE_DIR}/cmake/glibc-compat-symbols.h")
+endif()
+
+if(APPLE)
+ # was 10.5, but `-stdlib=libc++` requires >= 10.7 (deployment target)
+ # OpenAL-Soft git version 2023-11-25 requires >= 10.13
+ # Note:
+ # - kAudioObjectPropertyElementMain since macOS 12
+ # - kAudioObjectPropertyElementMaster gone in macOS 12
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.13 -DkAudioObjectPropertyElementMain=kAudioObjectPropertyElementMaster")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.13 -DkAudioObjectPropertyElementMain=kAudioObjectPropertyElementMaster")
+endif()
+
+# inject additional architectures for fat-binary (macosx)
+# CMAKE_EXTRA_ARCHS is set from JOAL's ant build.xml
+if(NOT APPLE)
+ set(CC_XTRA_FLAGS "")
+else()
+ set(CC_XTRA_FLAGS "-stdlib=libc++")
+endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CC_XTRA_FLAGS} ${CMAKE_EXTRA_ARCHS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CC_XTRA_FLAGS} ${CMAKE_EXTRA_ARCHS}")
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
+
+message(STATUS "CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}")
+message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+message(STATUS "CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}")
+message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
+
+if(NOT APPLE)
+ set(LINKER_FLAGS "-static-libgcc -static-libstdc++")
+else()
+ set(LINKER_FLAGS "-stdlib=libc++ -lc++abi")
+endif()
+message(STATUS "LINKER_FLAGS: ${LINKER_FLAGS}")
+
+set(CMAKE_SHARED_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
+set(CMAKE_MODULE_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
+
+set(CMAKE_CXX_COMPILER "clang++")
+