1+
2+ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0" )
3+ cmake_policy (SET CMP0135 NEW)
4+ cmake_policy (SET CMP0077 NEW)
5+ endif ()
6+
7+ #
8+ # initialisation
9+ #
10+
11+ message (STATUS "--------------------------------------------" )
12+ message (STATUS "--------------------------------------------" )
13+ message (STATUS "--------------------------------------------" )
14+ message (STATUS "ONNX_EXTENDED_VERSION=${ONNX_EXTENDED_VERSION} " )
15+ message (STATUS "CMAKE_VERSION=${CMAKE_VERSION} " )
16+ message (STATUS "CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} " )
17+ message (STATUS "CMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION} " )
18+ message (STATUS "CMAKE_CXX_COMPILER_VERSION=${CMAKE_CXX_COMPILER_VERSION} " )
19+ message (STATUS "USE_SETUP_PYTHON=${USE_SETUP_PYTHON} " )
20+ message (STATUS "USE_PYTHON_SETUP=${USE_PYTHON_SETUP} " )
21+ message (STATUS "PYTHON_VERSION=${PYTHON_VERSION} " )
22+ message (STATUS "PYTHON_VERSION_MM=${PYTHON_VERSION_MM} " )
23+ message (STATUS "PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} " )
24+ message (STATUS "PYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR} " )
25+ message (STATUS "PYTHON_LIBRARY=${PYTHON_LIBRARY} " )
26+ message (STATUS "PYTHON_LIBRARY_DIR=${PYTHON_LIBRARY_DIR} " )
27+ message (STATUS "PYTHON_NUMPY_INCLUDE_DIR=${PYTHON_NUMPY_INCLUDE_DIR} " )
28+ message (STATUS "PYTHON_MODULE_EXTENSION=${PYTHON_MODULE_EXTENSION} " )
29+ message (STATUS "PYTHON_NUMPY_VERSION=${PYTHON_NUMPY_VERSION} " )
30+ message (STATUS "USE_CUDA=${USE_CUDA} " )
31+ message (STATUS "CUDA_BUILD=${CUDA_BUILD} " )
32+ message (STATUS "CUDA_LINK=${CUDA_LINK} " )
33+ message (STATUS "USE_NVTX=${USE_NVTX} " )
34+ message (STATUS "ORT_VERSION=${ORT_VERSION} " )
35+ message (STATUS "PYTHON_MANYLINUX=${PYTHON_MANYLINUX} " )
36+ message (STATUS "SETUP_BUILD_PATH=${SETUP_BUILD_PATH} " )
37+ message (STATUS "SETUP_BUILD_LIB=${SETUP_BUILD_LIB} " )
38+ message (STATUS "--------------------------------------------" )
39+ message (STATUS "--------------------------------------------" )
40+ message (STATUS "--------------------------------------------" )
41+
142#
243# python extension
344#
@@ -9,21 +50,86 @@ else()
950 set (DLLEXT "so" )
1051endif ()
1152
53+ if (NOT CMAKE_BUILD_TYPE )
54+ set (CMAKE_BUILD_TYPE Release)
55+ endif ()
56+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g" )
57+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3" ) # -DNDEBUG
58+
59+ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g" )
60+ set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3" ) # -DNDEBUG
61+
1262#
13- # C++ 14 or C++ 17
63+ # C++ 14 or C++ 17 or...
1464#
15- if (MSVC )
16- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" )
65+ if (PYTHON_MANYLINUX EQUAL "1" )
66+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
67+ set (CMAKE_CXX_EXTENSIONS OFF )
68+ set (CMAKE_CXX_STANDARD 17)
69+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
70+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
71+ if (APPLE )
72+ set (CMAKE_OSX_DEPLOYMENT_TARGET "10.15" )
73+ elseif (MSVC )
74+ # nothing
75+ else ()
76+ execute_process (
77+ COMMAND ldd --version | grep "ldd (.*)"
78+ OUTPUT_VARIABLE ldd_version_output
79+ ERROR_VARIABLE ldd_version_error
80+ RESULT_VARIABLE ldd_version_result)
81+ endif ()
1782else ()
18- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "11" )
19- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17" )
83+ if (MSVC )
84+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
85+ set (CMAKE_CXX_STANDARD 17)
86+ elseif (APPLE )
87+ set (CMAKE_OSX_DEPLOYMENT_TARGET "10.15" )
88+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
89+ set (CMAKE_CXX_STANDARD 17)
90+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
91+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
2092 else ()
21- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "6" )
22- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
93+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
94+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas -Wextra" )
95+ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "15" )
96+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++23")
97+ set (CMAKE_CXX_STANDARD 23)
98+ elseif (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "11" )
99+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
100+ set (CMAKE_CXX_STANDARD 20)
101+ elseif (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "9" )
102+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
103+ set (CMAKE_CXX_STANDARD 17)
104+ elseif (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "6" )
105+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
106+ set (CMAKE_CXX_STANDARD 14)
23107 else ()
24108 message (FATAL_ERROR "gcc>=6.0 is needed but "
25109 "${CMAKE_C_COMPILER_VERSION} was detected." )
26110 endif ()
111+ # needed to build many linux build
112+ # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")
113+ # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lm")
114+
115+ execute_process (
116+ COMMAND ldd --version | grep "ldd (.*)"
117+ OUTPUT_VARIABLE ldd_version_output
118+ ERROR_VARIABLE ldd_version_error
119+ RESULT_VARIABLE ldd_version_result)
120+ endif ()
121+ endif ()
122+
123+ # Disable fast-math for Intel oneAPI compiler
124+ if ("${CMAKE_CXX_COMPILER_ID} " MATCHES "IntelLLVM" )
125+ if ("${CMAKE_CXX_COMPILER_ID} " MATCHES "MSVC-like" )
126+ # Using icx-cl compiler driver with MSVC-like arguments
127+ message (STATUS "IntelLLVM + MSVC-like" )
128+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:precise" )
129+ else ()
130+ # Using icpx compiler driver
131+ message (STATUS "IntelLLVM + no MSVC" )
132+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-fast-math" )
27133 endif ()
28134endif ()
29135
@@ -55,9 +161,31 @@ if(APPLE)
55161 set (ENV(CPPFLAGS) "-I/usr/local/opt/llvm/include" )
56162endif ()
57163
58- message (STATUS "--------------------------------------------" )
164+ message (STATUS "**********************************" )
165+ message (STATUS "**********************************" )
166+ message (STATUS "**********************************" )
167+ message (STATUS "GLIBC_VERSION=${ldd_version_output} " )
168+ message (STATUS "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} " )
169+ message (STATUS "CMAKE_C_FLAGS_INIT=${CMAKE_C_FLAGS_INIT} " )
170+ message (STATUS "CMAKE_C_FLAGS=${CMAKE_C_FLAGS} " )
171+ message (STATUS "CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} " )
172+ message (STATUS "CMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION} " )
173+ message (STATUS "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} " )
174+ message (STATUS "CMAKE_CXX_FLAGS_INIT=${CMAKE_CXX_FLAGS_INIT} " )
59175message (STATUS "CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} " )
176+ message (STATUS "CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} " )
177+ message (STATUS "CMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID} " )
178+ message (STATUS "CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} " )
179+ message (STATUS "CMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} " )
180+ message (STATUS "CMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS} " )
181+ message (STATUS "CMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} " )
182+ message (STATUS "CMAKE_LINKER=${CMAKE_LINKER} " )
183+ message (STATUS "CMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} " )
60184message (STATUS "LDFLAGS=${LDFLAGS} " )
61185message (STATUS "CPPFLAGS=${CPPFLAGS} " )
62- message (STATUS "--------------------------------------------" )
63-
186+ message (STATUS "DLL_EXT=${DLL_EXT} " )
187+ message (STATUS "TEST_FOLDER=${TEST_FOLDER} " )
188+ message (STATUS "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} " )
189+ message (STATUS "**********************************" )
190+ message (STATUS "**********************************" )
191+ message (STATUS "**********************************" )
0 commit comments