diff --git a/CMakeLists.txt b/CMakeLists.txt index e1722a7cdf690058fe09253fec3d5048788b6ac6..5e63420c0329ff2fd02127a1644a5d51ac723a70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,18 @@ set_property(CACHE MGE_ARCH PROPERTY STRINGS AUTO ) set (MGE_EXPORT_TARGETS MegEngine-targets) +if(NOT "$ENV{LD_LIBRARY_PATH}" STREQUAL "") + string(REPLACE ":" ";" ALTER_LD_LIBRARY_PATHS $ENV{LD_LIBRARY_PATH}) +else() + set(ALTER_LD_LIBRARY_PATHS "") +endif() + +if(NOT "$ENV{LIBRARY_PATH}" STREQUAL "") + string(REPLACE ":" ";" ALTER_LIBRARY_PATHS $ENV{LIBRARY_PATH}) +else() + set(ALTER_LIBRARY_PATHS "") +endif() + option(MGE_WITH_JIT "Build MegEngine with JIT." ON) option(MGE_WITH_JIT_MLIR "Build MegEngine with MLIR JIT." OFF) option(MGE_WITH_HALIDE "Build MegEngine with Halide JIT" OFF) diff --git a/cmake/aclrt.cmake b/cmake/aclrt.cmake index c25d3e18cf836a1dbce4e8fedddb0b8880aa9da1..d9d3d190b3b8725eb4da336b1ac6d3af3ab416f7 100644 --- a/cmake/aclrt.cmake +++ b/cmake/aclrt.cmake @@ -1,11 +1,7 @@ -if($ENV{LIBRARY_PATH}) - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - find_library(ACLRT_LIBRARY NAMES libascendcl.so - PATHS $ENV{LD_LIBRARY_PATH} "$ENV{ACLRT_HOME}/lib64/stub" ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{ACLRT_HOME}/lib64/stub" ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES stub DOC "ACL library." ) diff --git a/cmake/cndev.cmake b/cmake/cndev.cmake index 422912b055910602731f51ca6317d471641b4cba..ae7cdadbc9b5119ddcd9b9f4f7fcba11f4e6021e 100644 --- a/cmake/cndev.cmake +++ b/cmake/cndev.cmake @@ -1,11 +1,7 @@ -if($ENV{LIBRARY_PATH}) - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - find_library(CNDEV_LIBRARY NAMES libcndev.so - PATHS $ENV{LD_LIBRARY_PATH} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "CNDEV library." ) diff --git a/cmake/cnml.cmake b/cmake/cnml.cmake index 388f1b76252114e90f7c30ddb009c281e6f215fd..1956129b0ca1cf349216fa119dda6e009ca008fb 100644 --- a/cmake/cnml.cmake +++ b/cmake/cnml.cmake @@ -1,11 +1,7 @@ -if($ENV{LIBRARY_PATH}) - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - find_library(CNML_LIBRARY NAMES libcnml.so - PATHS $ENV{LD_LIBRARY_PATH} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "CNML library." ) diff --git a/cmake/cnrt.cmake b/cmake/cnrt.cmake index 4319ef3d2010e5dd1eab85bf3c218bfb61862c4c..fc458d75c48387e26df1103b490370c2475b32f3 100644 --- a/cmake/cnrt.cmake +++ b/cmake/cnrt.cmake @@ -1,11 +1,7 @@ -if($ENV{LIBRARY_PATH}) - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - find_library(CNRT_LIBRARY NAMES libcnrt.so - PATHS $ENV{LD_LIBRARY_PATH} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "CNRT library." ) diff --git a/cmake/cudnn.cmake b/cmake/cudnn.cmake index 3b037c3cc695612a85f6c5e9b444857b8e94096f..cf18b4a297db9d394b036ca2f89b45da62974739 100644 --- a/cmake/cudnn.cmake +++ b/cmake/cudnn.cmake @@ -3,10 +3,6 @@ if(${PkgConfig_FOUND}) pkg_check_modules(PC_CUDNN QUIET CUDNN) endif() -if(NOT "$ENV{LIBRARY_PATH}" STREQUAL "") - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - if("${CUDNN_ROOT_DIR}" STREQUAL "" AND NOT "$ENV{CUDNN_ROOT_DIR}" STREQUAL "") set(CUDNN_ROOT_DIR $ENV{CUDNN_ROOT_DIR}) endif() @@ -14,15 +10,15 @@ endif() if(MGE_CUDA_USE_STATIC AND NOT MGE_WITH_CUDNN_SHARED) find_library(CUDNN_LIBRARY NAMES libcudnn_static.a cudnn.lib - PATHS $ENV{LD_LIBRARY_PATH} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "CUDNN library." ) else() find_library(CUDNN_LIBRARY NAMES libcudnn.so libcudnn.dylib cudnn64.dll - PATHS $ENV{LD_LIBRARY_PATH} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "CUDNN library." ) endif() diff --git a/cmake/tensorrt.cmake b/cmake/tensorrt.cmake index 1958a643da2b360374f8563a75143e8faef26c90..e5dee682b761f12e38dedae1529fb9807f72981e 100644 --- a/cmake/tensorrt.cmake +++ b/cmake/tensorrt.cmake @@ -1,7 +1,3 @@ -if(NOT "$ENV{LIBRARY_PATH}" STREQUAL "") - string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH}) -endif() - if("${TRT_ROOT_DIR}" STREQUAL "" AND NOT "$ENV{TRT_ROOT_DIR}" STREQUAL "") set(TRT_ROOT_DIR $ENV{TRT_ROOT_DIR}) endif() @@ -9,15 +5,15 @@ endif() if(MGE_CUDA_USE_STATIC) find_library(TRT_LIBRARY NAMES libnvinfer_static.a nvinfer.lib - PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "TRT library." ) else() find_library(TRT_LIBRARY NAMES libnvinfer.so libnvinfer.dylib nvinfer.dll - PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} - HINTS ${SYSTEM_LIBRARY_PATHS} + PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} + HINTS ${ALTER_LIBRARY_PATHS} PATH_SUFFIXES lib lib64 DOC "TRT library." ) endif() diff --git a/scripts/cmake-build/BUILD_README.md b/scripts/cmake-build/BUILD_README.md index 6e673a9f0436a26f7d2410cbfad9bfd18b28279f..26af6f1470477250a6e63c4fff852bda16358b9d 100755 --- a/scripts/cmake-build/BUILD_README.md +++ b/scripts/cmake-build/BUILD_README.md @@ -75,6 +75,10 @@ 2: install gcc/g++, which version >= 6, (gcc/g++ >= 7, if need build training mode) 3: install build-essential git git-lfs gfortran libgfortran-6-dev autoconf gnupg flex bison gperf curl zlib1g-dev gcc-multilib g++-multilib lib32ncurses5-dev libxml2-utils xsltproc unzip libtool librdmacm-dev rdmacm-utils python3-dev python3-numpy texinfo 4: CUDA env(if enable CUDA), version detail refer to README.md +recommend set env about cuda/cudnn/tensorrt as followed: +export CUDA_ROOT_DIR=/path/to/cuda/lib +export CUDNN_ROOT_DIR=/path/to/cudnn/lib +export TRT_ROOT_DIR=/path/to/tensorrt/lib ``` ### MacOS host build