From c23a486fad9a9e7e8c5e76035746a19f95b14e5c Mon Sep 17 00:00:00 2001 From: Mirko Waechter <mirko.waechter@kit.edu> Date: Tue, 2 Oct 2018 00:02:45 +0200 Subject: [PATCH] added SOEM find scripts --- etc/cmake/FindSOEM.cmake | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 etc/cmake/FindSOEM.cmake diff --git a/etc/cmake/FindSOEM.cmake b/etc/cmake/FindSOEM.cmake new file mode 100644 index 000000000..529827d54 --- /dev/null +++ b/etc/cmake/FindSOEM.cmake @@ -0,0 +1,63 @@ +# - Try to find soem +# Once done this will define +# +# SOEM_FOUND - soem found +# SOEM_INCLUDE_DIR - the soem include directory +# SOEM_LIBRARIES - soem library +# + +if(NOT "$ENV{SOEM_DIR}" EQUAL "") + set(SOEM_DIR $ENV{SOEM_DIR} CACHE PATH "Path to SOEM" FORCE) +endif() + +set(HEADER_SEARCH_PATHS + ${SOEM_DIR}/include/ + ${SOEM_DIR}/include/soem/ + ${SOEM_DIR}/../soem/ #if SOEM_DIR points to build + ${SOEM_DIR}/../osal/ #if SOEM_DIR points to build + ${SOEM_DIR}/../oshw/ #if SOEM_DIR points to build + ${SOEM_DIR}/../osal/linux/ #if SOEM_DIR points to build + ${SOEM_DIR}/../oshw/linux/ #if SOEM_DIR points to build + ENV CPATH + /usr/include/ + /usr/include/soem/ + /usr/include/ + /usr/local/include/soem/ + /opt/local/include/soem/ +) + +#if soem is used from build, all headers are scattered around +#find all of them and add them to SOEM_INCLUDE_DIR +find_path(SOEM_INCLUDE_DIR_0 NAMES ethercatmain.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH) + +find_path(SOEM_INCLUDE_DIR_1 NAMES osal.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH) +find_path(SOEM_INCLUDE_DIR_2 NAMES osal_defs.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH) + +find_path(SOEM_INCLUDE_DIR_3 NAMES oshw.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH) +find_path(SOEM_INCLUDE_DIR_4 NAMES nicdrv.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH) + +if(SOEM_INCLUDE_DIR_0 AND SOEM_INCLUDE_DIR_1 AND SOEM_INCLUDE_DIR_2 AND SOEM_INCLUDE_DIR_3 AND SOEM_INCLUDE_DIR_4) + set(SOEM_INCLUDE_DIR ${SOEM_INCLUDE_DIR_0} ${SOEM_INCLUDE_DIR_1} ${SOEM_INCLUDE_DIR_2} ${SOEM_INCLUDE_DIR_3} ${SOEM_INCLUDE_DIR_4}) +endif() + +FIND_LIBRARY(SOEM_LIBRARIES NAMES soem + PATHS + ${SOEM_DIR} #if SOEM_DIR points to build + ${SOEM_DIR}/lib + ENV LD_LIBRARY_PATH + ENV LIBRARY_PATH + /usr/lib + /usr/local/lib + /opt/local/lib + NO_DEFAULT_PATH +) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set OODL_YOUBOT_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(SOEM DEFAULT_MSG + SOEM_LIBRARIES SOEM_INCLUDE_DIR) + + +# show the SOEM_INCLUDE_DIR and SOEM_LIBRARY_DIR variables only in the advanced view +MARK_AS_ADVANCED(SOEM_INCLUDE_DIR SOEM_LIBRARIES) -- GitLab