Skip to content

Commit 4032c2a

Browse files
authored
[Build] Organize cmake file. (#7657)
1 parent b79d743 commit 4032c2a

File tree

2 files changed

+40
-51
lines changed

2 files changed

+40
-51
lines changed

CMakeLists.txt

+36-51
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ if (${BUILD_TYPE} STREQUAL "dev")
129129
endif()
130130
else()
131131
if (MSVC)
132-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /O2")
133-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2")
132+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /O2 /DNDEBUG")
133+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2 /DNDEBUG")
134134
else()
135-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
136-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
135+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -DNDEBUG")
136+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG")
137137
endif()
138138
endif()
139139

@@ -186,48 +186,11 @@ else(MSVC)
186186
endif(NOT APPLE)
187187
endif(MSVC)
188188

189-
if(USE_OPENMP)
190-
include(FindOpenMP)
191-
if(OPENMP_FOUND)
192-
set(CMAKE_C_FLAGS "${OpenMP_C_FLAGS} ${CMAKE_C_FLAGS}")
193-
set(CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
194-
endif(OPENMP_FOUND)
195-
message(STATUS "Build with OpenMP.")
196-
endif(USE_OPENMP)
197-
198189
if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
199190
message(STATUS "Disabling LIBXSMM on ${CMAKE_SYSTEM_PROCESSOR}.")
200191
set(USE_LIBXSMM OFF)
201192
endif()
202193

203-
if(USE_LIBXSMM)
204-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_LIBXSMM -DDGL_CPU_LLC_SIZE=40000000 -D__BLAS=0")
205-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_LIBXSMM -DDGL_CPU_LLC_SIZE=40000000 -D__BLAS=0")
206-
message(STATUS "Build with LIBXSMM optimization.")
207-
endif(USE_LIBXSMM)
208-
209-
if ((NOT MSVC) AND USE_EPOLL)
210-
INCLUDE(CheckIncludeFile)
211-
check_include_file("sys/epoll.h" EPOLL_AVAILABLE)
212-
if (EPOLL_AVAILABLE)
213-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_EPOLL")
214-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_EPOLL")
215-
else()
216-
message(WARNING "EPOLL is not available on this platform...")
217-
endif()
218-
endif ()
219-
220-
# To compile METIS correct for DGL.
221-
if(MSVC)
222-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DIDXTYPEWIDTH=64 /DREALTYPEWIDTH=32")
223-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DIDXTYPEWIDTH=64 /DREALTYPEWIDTH=32")
224-
else(MSVC)
225-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIDXTYPEWIDTH=64 -DREALTYPEWIDTH=32")
226-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIDXTYPEWIDTH=64 -DREALTYPEWIDTH=32")
227-
endif(MSVC)
228-
229-
# configure minigun
230-
add_definitions(-DENABLE_PARTIAL_FRONTIER=0) # disable minigun partial frontier compile
231194
# Source file lists
232195
file(GLOB DGL_SRC
233196
src/*.cc
@@ -256,6 +219,12 @@ else()
256219
endif()
257220
list(APPEND DGL_SRC ${DGL_RPC_SRC})
258221

222+
if(USE_OPENMP)
223+
find_package(OpenMP REQUIRED)
224+
list(APPEND DGL_LINKER_LIBS OpenMP::OpenMP_CXX)
225+
message(STATUS "Build with OpenMP.")
226+
endif(USE_OPENMP)
227+
259228
# Configure cuda
260229
if(USE_CUDA)
261230
file(GLOB_RECURSE DGL_CUDA_SRC
@@ -279,6 +248,16 @@ else(USE_CUDA)
279248
add_library(dgl SHARED ${DGL_SRC})
280249
endif(USE_CUDA)
281250

251+
if ((NOT MSVC) AND USE_EPOLL)
252+
INCLUDE(CheckIncludeFile)
253+
check_include_file("sys/epoll.h" EPOLL_AVAILABLE)
254+
if (EPOLL_AVAILABLE)
255+
target_compile_definitions(dgl PRIVATE USE_EPOLL)
256+
else()
257+
message(WARNING "EPOLL is not available on this platform...")
258+
endif()
259+
endif ()
260+
282261
# include directories
283262
target_include_directories(dgl PRIVATE "include")
284263
# check for conda includes
@@ -351,18 +330,26 @@ else(EXTERNAL_NANOFLANN_PATH)
351330
endif(EXTERNAL_NANOFLANN_PATH)
352331

353332
if (USE_LIBXSMM)
333+
target_compile_definitions(dgl PRIVATE USE_LIBXSMM DGL_CPU_LLC_SIZE=40000000 __BLAS=0)
354334
target_include_directories(dgl PRIVATE "third_party/libxsmm/include")
335+
message(STATUS "Build with LIBXSMM optimization.")
355336
endif()
356337

338+
# To compile METIS correct for DGL.
339+
add_compile_definitions(IDXTYPEWIDTH=64 REALTYPEWIDTH=32)
357340
if (EXTERNAL_METIS_PATH)
341+
# To compile METIS correct for DGL.
342+
if(MSVC)
343+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DIDXTYPEWIDTH=64 /DREALTYPEWIDTH=32")
344+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DIDXTYPEWIDTH=64 /DREALTYPEWIDTH=32")
345+
else(MSVC)
346+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIDXTYPEWIDTH=64 -DREALTYPEWIDTH=32")
347+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIDXTYPEWIDTH=64 -DREALTYPEWIDTH=32")
348+
endif(MSVC)
358349
find_package(METIS REQUIRED)
359-
if (NOT METIS_FOUND)
360-
message(FATAL_ERROR "Failed to find METIS library")
361-
else()
362-
message(STATUS "Found METIS library")
363-
target_include_directories(dgl SYSTEM PUBLIC ${METIS_INCLUDE_DIR})
364-
list(APPEND DGL_LINKER_LIBS ${METIS_LIBRARIES})
365-
endif()
350+
message(STATUS "Found METIS library")
351+
target_include_directories(dgl SYSTEM PUBLIC ${METIS_INCLUDE_DIR})
352+
list(APPEND DGL_LINKER_LIBS ${METIS_LIBRARIES})
366353
else(EXTERNAL_METIS_PATH)
367354
target_include_directories(dgl PRIVATE "third_party/METIS/include")
368355
# Compile METIS
@@ -391,8 +378,6 @@ endif()
391378

392379
# Compile gpu_cache
393380
if(USE_CUDA)
394-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_GPU_CACHE")
395-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_GPU_CACHE")
396381
# Manually build gpu_cache because CMake always builds it as shared
397382
file(GLOB gpu_cache_src
398383
third_party/HugeCTR/gpu_cache/src/nv_gpu_cache.cu
@@ -406,7 +391,7 @@ endif(USE_CUDA)
406391

407392
# support PARALLEL_ALGORITHMS
408393
if (LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
409-
add_definitions(-DPARALLEL_ALGORITHMS)
394+
target_compile_definitions(dgl PRIVATE PARALLEL_ALGORITHMS)
410395
endif(LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
411396

412397
target_link_libraries(dgl ${DGL_LINKER_LIBS} ${DGL_RUNTIME_LINKER_LIBS})

cmake/modules/CUDA.cmake

+4
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ macro(dgl_config_cuda linker_libs)
230230
string(CONCAT CXX_HOST_FLAGS ${CXX_HOST_FLAGS} ",/MD")
231231
endif()
232232
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler" "${CXX_HOST_FLAGS}")
233+
if(USE_OPENMP)
234+
# Needed by CUDA disjoint union source file.
235+
list(APPEND CUDA_NVCC_FLAGS "-Xcompiler" "${OpenMP_CXX_FLAGS}")
236+
endif(USE_OPENMP)
233237

234238
# 1. Add arch flags
235239
dgl_select_nvcc_arch_flags(NVCC_FLAGS_ARCH)

0 commit comments

Comments
 (0)