Unverified Commit 5b587333 authored by Nikita Titov's avatar Nikita Titov Committed by GitHub
Browse files

[ci] fix CMakeLint `linelength` errors (#4796)

* Update Sanitizer.cmake

* Update FindLibR.cmake

* Update IntegratedOpenCL.cmake

* Update FindLibR.cmake

* Update CMakeLists.txt

* Update FindLibR.cmake

* Update static_analysis.yml

* Update CMakeLists.txt

* Update FindLibR.cmake

* Update IntegratedOpenCL.cmake

* Update static_analysis.yml
parent c3ff1871
...@@ -7,9 +7,14 @@ OPTION(USE_TIMETAG "Set to ON to output time costs" OFF) ...@@ -7,9 +7,14 @@ OPTION(USE_TIMETAG "Set to ON to output time costs" OFF)
OPTION(USE_CUDA "Enable CUDA-accelerated training (EXPERIMENTAL)" OFF) OPTION(USE_CUDA "Enable CUDA-accelerated training (EXPERIMENTAL)" OFF)
OPTION(USE_DEBUG "Set to ON for Debug mode" OFF) OPTION(USE_DEBUG "Set to ON for Debug mode" OFF)
OPTION(USE_SANITIZER "Use santizer flags" OFF) OPTION(USE_SANITIZER "Use santizer flags" OFF)
SET(ENABLED_SANITIZERS "address" "leak" "undefined" CACHE STRING SET(
"Semicolon separated list of sanitizer names. E.g 'address;leak'. Supported sanitizers are ENABLED_SANITIZERS
address, leak, undefined and thread.") "address" "leak" "undefined"
CACHE
STRING
"Semicolon separated list of sanitizer names, e.g., 'address;leak'. \
Supported sanitizers are address, leak, undefined and thread."
)
OPTION(BUILD_CPP_TEST "Build C++ tests with Google Test" OFF) OPTION(BUILD_CPP_TEST "Build C++ tests with Google Test" OFF)
OPTION(BUILD_STATIC_LIB "Build static library" OFF) OPTION(BUILD_STATIC_LIB "Build static library" OFF)
OPTION(__BUILD_FOR_R "Set to ON if building lib_lightgbm for use with the R package" OFF) OPTION(__BUILD_FOR_R "Set to ON if building lib_lightgbm for use with the R package" OFF)
...@@ -63,7 +68,10 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") ...@@ -63,7 +68,10 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
elseif(MSVC) elseif(MSVC)
if(MSVC_VERSION LESS 1900) if(MSVC_VERSION LESS 1900)
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} doesn't support required C++11 features. Please use a newer MSVC.") message(
FATAL_ERROR
"The compiler ${CMAKE_CXX_COMPILER} doesn't support required C++11 features. Please use a newer MSVC."
)
endif() endif()
cmake_minimum_required(VERSION 3.8) cmake_minimum_required(VERSION 3.8)
endif() endif()
...@@ -197,15 +205,18 @@ if(USE_CUDA) ...@@ -197,15 +205,18 @@ if(USE_CUDA)
set(CMAKE_CUDA_STANDARD_REQUIRED ON) set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif() endif()
set(BASE_DEFINES set(
BASE_DEFINES
-DPOWER_FEATURE_WORKGROUPS=12 -DPOWER_FEATURE_WORKGROUPS=12
-DUSE_CONSTANT_BUF=0 -DUSE_CONSTANT_BUF=0
) )
set(ALLFEATS_DEFINES set(
ALLFEATS_DEFINES
${BASE_DEFINES} ${BASE_DEFINES}
-DENABLE_ALL_FEATURES -DENABLE_ALL_FEATURES
) )
set(FULLDATA_DEFINES set(
FULLDATA_DEFINES
${ALLFEATS_DEFINES} ${ALLFEATS_DEFINES}
-DIGNORE_INDICES -DIGNORE_INDICES
) )
...@@ -222,7 +233,8 @@ if(USE_CUDA) ...@@ -222,7 +233,8 @@ if(USE_CUDA)
set(histograms ${histograms} PARENT_SCOPE) set(histograms ${histograms} PARENT_SCOPE)
endif() endif()
target_compile_definitions( target_compile_definitions(
histo${hsize}${hname} PRIVATE histo${hsize}${hname}
PRIVATE
-DCONST_HESSIAN=${hconst} -DCONST_HESSIAN=${hconst}
${hdir} ${hdir}
) )
...@@ -278,7 +290,10 @@ if(${MM_MALLOC}) ...@@ -278,7 +290,10 @@ if(${MM_MALLOC})
endif() endif()
if(UNIX OR MINGW OR CYGWIN) if(UNIX OR MINGW OR CYGWIN)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -Wextra -Wall -Wno-ignored-attributes -Wno-unknown-pragmas -Wno-return-type") SET(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -std=c++11 -pthread -Wextra -Wall -Wno-ignored-attributes -Wno-unknown-pragmas -Wno-return-type"
)
if(USE_DEBUG) if(USE_DEBUG)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
else() else()
...@@ -300,7 +315,8 @@ if(WIN32 AND MINGW) ...@@ -300,7 +315,8 @@ if(WIN32 AND MINGW)
endif() endif()
if(MSVC) if(MSVC)
SET(variables SET(
variables
CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELEASE
...@@ -344,7 +360,9 @@ if(USE_MPI) ...@@ -344,7 +360,9 @@ if(USE_MPI)
include_directories(${MPI_CXX_INCLUDE_PATH}) include_directories(${MPI_CXX_INCLUDE_PATH})
endif() endif()
file(GLOB SOURCES file(
GLOB
SOURCES
src/boosting/*.cpp src/boosting/*.cpp
src/io/*.cpp src/io/*.cpp
src/metric/*.cpp src/metric/*.cpp
...@@ -395,28 +413,53 @@ if(USE_SWIG) ...@@ -395,28 +413,53 @@ if(USE_SWIG)
set_target_properties(_lightgbm_swig PROPERTIES OUTPUT_NAME "lib_lightgbm_swig") set_target_properties(_lightgbm_swig PROPERTIES OUTPUT_NAME "lib_lightgbm_swig")
if(WIN32) if(WIN32)
if(MINGW OR CYGWIN) if(MINGW OR CYGWIN)
add_custom_command(TARGET _lightgbm_swig POST_BUILD add_custom_command(
TARGET _lightgbm_swig
POST_BUILD
COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${PROJECT_SOURCE_DIR}/lib_lightgbm.dll" com/microsoft/ml/lightgbm/windows/x86_64 COMMAND
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${PROJECT_SOURCE_DIR}/lib_lightgbm_swig.dll" com/microsoft/ml/lightgbm/windows/x86_64 "${CMAKE_COMMAND}"
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com) -E
copy_if_different
"${PROJECT_SOURCE_DIR}/lib_lightgbm.dll"
com/microsoft/ml/lightgbm/windows/x86_64
COMMAND
"${CMAKE_COMMAND}"
-E
copy_if_different
"${PROJECT_SOURCE_DIR}/lib_lightgbm_swig.dll"
com/microsoft/ml/lightgbm/windows/x86_64
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com
)
else() else()
add_custom_command(TARGET _lightgbm_swig POST_BUILD add_custom_command(
TARGET _lightgbm_swig
POST_BUILD
COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java
COMMAND cp "${PROJECT_SOURCE_DIR}/Release/*.dll" com/microsoft/ml/lightgbm/windows/x86_64 COMMAND cp "${PROJECT_SOURCE_DIR}/Release/*.dll" com/microsoft/ml/lightgbm/windows/x86_64
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com) COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com
)
endif() endif()
elseif(APPLE) elseif(APPLE)
add_custom_command(TARGET _lightgbm_swig POST_BUILD add_custom_command(
TARGET _lightgbm_swig
POST_BUILD
COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java
COMMAND cp "${PROJECT_SOURCE_DIR}/*.dylib" com/microsoft/ml/lightgbm/osx/x86_64 COMMAND cp "${PROJECT_SOURCE_DIR}/*.dylib" com/microsoft/ml/lightgbm/osx/x86_64
COMMAND cp "${PROJECT_SOURCE_DIR}/lib_lightgbm_swig.jnilib" com/microsoft/ml/lightgbm/osx/x86_64/lib_lightgbm_swig.dylib COMMAND
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com) cp
"${PROJECT_SOURCE_DIR}/lib_lightgbm_swig.jnilib"
com/microsoft/ml/lightgbm/osx/x86_64/lib_lightgbm_swig.dylib
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com
)
else() else()
add_custom_command(TARGET _lightgbm_swig POST_BUILD add_custom_command(
TARGET _lightgbm_swig
POST_BUILD
COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java COMMAND "${Java_JAVAC_EXECUTABLE}" -d . java/*.java
COMMAND cp "${PROJECT_SOURCE_DIR}/*.so" com/microsoft/ml/lightgbm/linux/x86_64 COMMAND cp "${PROJECT_SOURCE_DIR}/*.so" com/microsoft/ml/lightgbm/linux/x86_64
COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com) COMMAND "${Java_JAR_EXECUTABLE}" -cf lightgbmlib.jar com
)
endif() endif()
endif() endif()
...@@ -525,9 +568,11 @@ if(BUILD_CPP_TEST) ...@@ -525,9 +568,11 @@ if(BUILD_CPP_TEST)
target_link_libraries(testlightgbm PRIVATE lightgbm_objs GTest::GTest) target_link_libraries(testlightgbm PRIVATE lightgbm_objs GTest::GTest)
endif() endif()
install(TARGETS lightgbm _lightgbm install(
TARGETS lightgbm _lightgbm
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
)
install(DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM DESTINATION ${CMAKE_INSTALL_PREFIX}/include) install(DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
...@@ -31,7 +31,13 @@ if(NOT OpenCL-ICD-Loader_POPULATED) ...@@ -31,7 +31,13 @@ if(NOT OpenCL-ICD-Loader_POPULATED)
message(STATUS "Populated OpenCL ICD Loader") message(STATUS "Populated OpenCL ICD Loader")
endif() endif()
list(APPEND INTEGRATED_OPENCL_INCLUDES ${OPENCL_ICD_LOADER_HEADERS_DIR}) list(APPEND INTEGRATED_OPENCL_INCLUDES ${OPENCL_ICD_LOADER_HEADERS_DIR})
list(APPEND INTEGRATED_OPENCL_LIBRARIES ${opencl-icd-loader_BINARY_DIR}/Release/OpenCL.lib cfgmgr32.lib runtimeobject.lib) list(
APPEND
INTEGRATED_OPENCL_LIBRARIES
${opencl-icd-loader_BINARY_DIR}/Release/OpenCL.lib
cfgmgr32.lib
runtimeobject.lib
)
list(APPEND INTEGRATED_OPENCL_DEFINITIONS CL_TARGET_OPENCL_VERSION=120) list(APPEND INTEGRATED_OPENCL_DEFINITIONS CL_TARGET_OPENCL_VERSION=120)
# Build Independent Boost libraries # Build Independent Boost libraries
...@@ -42,8 +48,62 @@ set(BOOST_BASE "${PROJECT_BINARY_DIR}/Boost") ...@@ -42,8 +48,62 @@ set(BOOST_BASE "${PROJECT_BINARY_DIR}/Boost")
set(BOOST_BOOTSTRAP "${BOOST_BASE}/source/bootstrap.bat") set(BOOST_BOOTSTRAP "${BOOST_BASE}/source/bootstrap.bat")
set(BOOST_BUILD "${BOOST_BASE}/source/b2.exe") set(BOOST_BUILD "${BOOST_BASE}/source/b2.exe")
set(BOOST_FLAGS "") set(BOOST_FLAGS "")
list(APPEND BOOST_SUBMODULES "libs/algorithm" "libs/align" "libs/any" "libs/array" "libs/assert" "libs/bind" "libs/chrono" "libs/compute" "libs/concept_check" "libs/config" "libs/container" "libs/container_hash" "libs/core" "libs/detail" "libs/filesystem" "libs/foreach" "libs/format" "libs/function" "libs/function_types" "libs/fusion" "libs/headers" "libs/integer" "libs/io" "libs/iterator" "libs/lexical_cast" "libs/math" "libs/move" "libs/mpl" "libs/multi_index" "libs/numeric/conversion" "libs/optional" "libs/predef" "libs/preprocessor" "libs/property_tree" "libs/range" "libs/ratio" "libs/serialization" "libs/smart_ptr" "libs/static_assert" "libs/system" "libs/throw_exception" "libs/tuple" "libs/typeof" "libs/type_index" "libs/type_traits" "libs/utility" "libs/uuid" "libs/winapi" "tools/boost_install" "tools/build") list(
ExternalProject_Add(Boost APPEND
BOOST_SUBMODULES
"libs/algorithm"
"libs/align"
"libs/any"
"libs/array"
"libs/assert"
"libs/bind"
"libs/chrono"
"libs/compute"
"libs/concept_check"
"libs/config"
"libs/container"
"libs/container_hash"
"libs/core"
"libs/detail"
"libs/filesystem"
"libs/foreach"
"libs/format"
"libs/function"
"libs/function_types"
"libs/fusion"
"libs/headers"
"libs/integer"
"libs/io"
"libs/iterator"
"libs/lexical_cast"
"libs/math"
"libs/move"
"libs/mpl"
"libs/multi_index"
"libs/numeric/conversion"
"libs/optional"
"libs/predef"
"libs/preprocessor"
"libs/property_tree"
"libs/range"
"libs/ratio"
"libs/serialization"
"libs/smart_ptr"
"libs/static_assert"
"libs/system"
"libs/throw_exception"
"libs/tuple"
"libs/typeof"
"libs/type_index"
"libs/type_traits"
"libs/utility"
"libs/uuid"
"libs/winapi"
"tools/boost_install"
"tools/build"
)
ExternalProject_Add(
Boost
TMP_DIR "${BOOST_BASE}/tmp" TMP_DIR "${BOOST_BASE}/tmp"
STAMP_DIR "${BOOST_BASE}/stamp" STAMP_DIR "${BOOST_BASE}/stamp"
DOWNLOAD_DIR "${BOOST_BASE}/download" DOWNLOAD_DIR "${BOOST_BASE}/download"
...@@ -57,7 +117,21 @@ ExternalProject_Add(Boost ...@@ -57,7 +117,21 @@ ExternalProject_Add(Boost
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_COMMAND "" PATCH_COMMAND ""
CONFIGURE_COMMAND ${BOOST_BOOTSTRAP} CONFIGURE_COMMAND ${BOOST_BOOTSTRAP}
BUILD_COMMAND ${BOOST_BUILD} -sBOOST_ROOT=${BOOST_BASE}/source -a -q -j ${J} --with-headers --with-chrono --with-filesystem --with-system link=static runtime-link=shared variant=release threading=multi cxxflags="${BOOST_FLAGS}" BUILD_COMMAND
${BOOST_BUILD}
-sBOOST_ROOT=${BOOST_BASE}/source
-a
-q
-j ${J}
--with-headers
--with-chrono
--with-filesystem
--with-system
link=static
runtime-link=shared
variant=release
threading=multi
cxxflags="${BOOST_FLAGS}"
INSTALL_COMMAND "" INSTALL_COMMAND ""
) )
set(BOOST_INCLUDE "${BOOST_BASE}/source" CACHE PATH "") set(BOOST_INCLUDE "${BOOST_BASE}/source" CACHE PATH "")
...@@ -75,9 +149,21 @@ if(MSVC) ...@@ -75,9 +149,21 @@ if(MSVC)
else() else()
message(FATAL_ERROR "Unrecognized MSVC version number: ${MSVC_VERSION}") message(FATAL_ERROR "Unrecognized MSVC version number: ${MSVC_VERSION}")
endif() endif()
list(APPEND INTEGRATED_OPENCL_LIBRARIES ${BOOST_LIBRARY}/libboost_filesystem-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib) list(
list(APPEND INTEGRATED_OPENCL_LIBRARIES ${BOOST_LIBRARY}/libboost_system-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib) APPEND
list(APPEND INTEGRATED_OPENCL_LIBRARIES ${BOOST_LIBRARY}/libboost_chrono-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib) INTEGRATED_OPENCL_LIBRARIES
${BOOST_LIBRARY}/libboost_filesystem-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib
)
list(
APPEND
INTEGRATED_OPENCL_LIBRARIES
${BOOST_LIBRARY}/libboost_system-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib
)
list(
APPEND
INTEGRATED_OPENCL_LIBRARIES
${BOOST_LIBRARY}/libboost_chrono-vc${MSVC_TOOLCHAIN_ID}-mt-x64-${BOOST_VERSION_UNDERSCORE}.lib
)
else() else()
message(FATAL_ERROR "Integrated OpenCL build is not yet available for MinGW") message(FATAL_ERROR "Integrated OpenCL build is not yet available for MinGW")
endif() endif()
......
...@@ -28,14 +28,12 @@ macro(enable_sanitizers SANITIZERS) ...@@ -28,14 +28,12 @@ macro(enable_sanitizers SANITIZERS)
string(TOLOWER ${_san} _san) string(TOLOWER ${_san} _san)
if(_san MATCHES "thread") if(_san MATCHES "thread")
if(${_use_other_sanitizers}) if(${_use_other_sanitizers})
message(FATAL_ERROR message(FATAL_ERROR "thread sanitizer is not compatible with ${_san} sanitizer.")
"thread sanitizer is not compatible with ${_san} sanitizer.")
endif() endif()
set(_use_thread_sanitizer 1) set(_use_thread_sanitizer 1)
else() else()
if(${_use_thread_sanitizer}) if(${_use_thread_sanitizer})
message(FATAL_ERROR message(FATAL_ERROR "${_san} sanitizer is not compatible with thread sanitizer.")
"${_san} sanitizer is not compatible with thread sanitizer.")
endif() endif()
set(_use_other_sanitizers 1) set(_use_other_sanitizers 1)
endif() endif()
......
...@@ -44,8 +44,7 @@ function(create_rlib_for_msvc) ...@@ -44,8 +44,7 @@ function(create_rlib_for_msvc)
find_program(DLLTOOL_EXE dlltool) find_program(DLLTOOL_EXE dlltool)
if(NOT DLLTOOL_EXE) if(NOT DLLTOOL_EXE)
message(FATAL_ERROR "dlltool.exe not found!\ message(FATAL_ERROR "dlltool.exe not found!\nDo you have Rtools installed with its MinGW's bin/ in PATH?")
\nDo you have Rtools installed with its MinGW's bin/ in PATH?")
endif() endif()
set(LIBR_MSVC_CORE_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/R.lib" CACHE PATH "R.lib filepath") set(LIBR_MSVC_CORE_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/R.lib" CACHE PATH "R.lib filepath")
...@@ -62,7 +61,8 @@ function(create_rlib_for_msvc) ...@@ -62,7 +61,8 @@ function(create_rlib_for_msvc)
"${CMAKE_CURRENT_BINARY_DIR}/make-r-def.R" "${CMAKE_CURRENT_BINARY_DIR}/make-r-def.R"
"${LIBR_CORE_LIBRARY}" "${CMAKE_CURRENT_BINARY_DIR}/R.def" "${LIBR_CORE_LIBRARY}" "${CMAKE_CURRENT_BINARY_DIR}/R.def"
) )
execute_process(COMMAND ${DLLTOOL_EXE} execute_process(
COMMAND ${DLLTOOL_EXE}
"--input-def" "${CMAKE_CURRENT_BINARY_DIR}/R.def" "--input-def" "${CMAKE_CURRENT_BINARY_DIR}/R.def"
"--output-lib" "${LIBR_MSVC_CORE_LIBRARY}" "--output-lib" "${LIBR_MSVC_CORE_LIBRARY}"
) )
...@@ -75,7 +75,10 @@ endfunction() ...@@ -75,7 +75,10 @@ endfunction()
if(CMAKE_R_VERSION) if(CMAKE_R_VERSION)
message(STATUS "R version passed into FindLibR.cmake: ${CMAKE_R_VERSION}") message(STATUS "R version passed into FindLibR.cmake: ${CMAKE_R_VERSION}")
elseif(WIN32) elseif(WIN32)
message(FATAL_ERROR "Expected CMAKE_R_VERSION to be passed in on Windows but none was provided. Check src/install.libs.R") message(
FATAL_ERROR
"Expected CMAKE_R_VERSION to be passed in on Windows but none was provided. Check src/install.libs.R"
)
endif() endif()
...@@ -149,8 +152,11 @@ if(NOT LIBR_EXECUTABLE) ...@@ -149,8 +152,11 @@ if(NOT LIBR_EXECUTABLE)
endif() endif()
if(NOT LIBR_HOME) if(NOT LIBR_HOME)
message(FATAL_ERROR "Unable to locate R executable.\ message(
\nEither add its location to PATH or provide it through the LIBR_EXECUTABLE CMake variable") FATAL_ERROR
"Unable to locate R executable.\
\nEither add its location to PATH or provide it through the LIBR_EXECUTABLE CMake variable"
)
endif() endif()
# set exe location based on R_ARCH # set exe location based on R_ARCH
...@@ -159,8 +165,11 @@ if(NOT LIBR_EXECUTABLE) ...@@ -159,8 +165,11 @@ if(NOT LIBR_EXECUTABLE)
endif() endif()
if(NOT LIBR_EXECUTABLE) if(NOT LIBR_EXECUTABLE)
message(FATAL_ERROR "Unable to locate R executable.\ message(
\nEither add its location to PATH or provide it through the LIBR_EXECUTABLE CMake variable") FATAL_ERROR
"Unable to locate R executable.\
\nEither add its location to PATH or provide it through the LIBR_EXECUTABLE CMake variable"
)
endif() endif()
endif() endif()
...@@ -182,7 +191,14 @@ set(LIBR_EXECUTABLE ${LIBR_EXECUTABLE} CACHE PATH "R executable") ...@@ -182,7 +191,14 @@ set(LIBR_EXECUTABLE ${LIBR_EXECUTABLE} CACHE PATH "R executable")
set(LIBR_INCLUDE_DIRS ${LIBR_INCLUDE_DIRS} CACHE PATH "R include directory") set(LIBR_INCLUDE_DIRS ${LIBR_INCLUDE_DIRS} CACHE PATH "R include directory")
# where is R.so / R.dll / libR.so likely to be found? # where is R.so / R.dll / libR.so likely to be found?
set(LIBR_PATH_HINTS "${CMAKE_CURRENT_BINARY_DIR}" "${LIBR_HOME}/lib" "${LIBR_HOME}/bin/${R_ARCH}" "${LIBR_HOME}/bin" "${LIBR_LIBRARIES}") set(
LIBR_PATH_HINTS
"${CMAKE_CURRENT_BINARY_DIR}"
"${LIBR_HOME}/lib"
"${LIBR_HOME}/bin/${R_ARCH}"
"${LIBR_HOME}/bin"
"${LIBR_LIBRARIES}"
)
# look for the core R library # look for the core R library
find_library( find_library(
...@@ -216,7 +232,8 @@ endif() ...@@ -216,7 +232,8 @@ endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
if(WIN32 AND MSVC) if(WIN32 AND MSVC)
find_package_handle_standard_args(LibR DEFAULT_MSG find_package_handle_standard_args(
LibR DEFAULT_MSG
LIBR_HOME LIBR_HOME
LIBR_EXECUTABLE LIBR_EXECUTABLE
LIBR_INCLUDE_DIRS LIBR_INCLUDE_DIRS
...@@ -224,7 +241,8 @@ if(WIN32 AND MSVC) ...@@ -224,7 +241,8 @@ if(WIN32 AND MSVC)
LIBR_MSVC_CORE_LIBRARY LIBR_MSVC_CORE_LIBRARY
) )
else() else()
find_package_handle_standard_args(LibR DEFAULT_MSG find_package_handle_standard_args(
LibR DEFAULT_MSG
LIBR_HOME LIBR_HOME
LIBR_EXECUTABLE LIBR_EXECUTABLE
LIBR_INCLUDE_DIRS LIBR_INCLUDE_DIRS
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment