Skip to content

Commit

Permalink
Merge pull request #14 from marcfir/master
Browse files Browse the repository at this point in the history
CMake: Use config.h to set the preprocessor device variables

lgtm
  • Loading branch information
robert-burger authored Aug 21, 2024
2 parents 33cc806 + a13fdab commit 388ac34
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 9 deletions.
15 changes: 7 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,6 @@ find_package (Threads REQUIRED)
include_directories(${libosal_INCLUDE_DIRS} include)
link_directories(${libosal_LIB_DIR})

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/libethercat/config.h)


set(SRC_ETHERCAT
src/async_loop.c
src/coe.c
Expand Down Expand Up @@ -96,29 +93,31 @@ list(FIND ECAT_DEVICE "bpf" HAS_SOCK_BPF)
if (${HAS_SOCK_RAW} GREATER -1)
message("Include device sock_raw")
list(APPEND SRC_HW_LAYER src/hw_sock_raw.c)
add_compile_definitions(LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_LEGACY)
set(LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_LEGACY 1)
endif()
if (${HAS_SOCK_RAW_MMAPED} GREATER -1)
message("Include device sock_raw_mmaped")
list(APPEND SRC_HW_LAYER src/hw_sock_raw_mmaped.c)
add_compile_definitions(LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_MMAPED)
set(LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_MMAPED 1)
endif()
if (${HAS_SOCK_FILE} GREATER -1)
message("Include device file")
list(APPEND SRC_HW_LAYER src/hw_file.c)
add_compile_definitions(LIBETHERCAT_BUILD_DEVICE_FILE)
set(LIBETHERCAT_BUILD_DEVICE_FILE 1)
endif()
if (${HAS_SOCK_PIKEOS} GREATER -1)
message("Include device pikeos")
list(APPEND SRC_HW_LAYER src/hw_pikeos.c)
add_compile_definitions(LIBETHERCAT_BUILD_DEVICE_PIKEOS)
set(LIBETHERCAT_BUILD_DEVICE_PIKEOS 1)
endif()
if (${HAS_SOCK_BPF} GREATER -1)
message("Include device bpf")
list(APPEND SRC_HW_LAYER src/hw_bpf.c)
add_compile_definitions(LIBETHERCAT_BUILD_DEVICE_BPD)
set(LIBETHERCAT_BUILD_DEVICE_BPF 1)
endif()

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/libethercat/config.h)

# LIBS
add_library(ethercat ${SRC_ETHERCAT} ${SRC_HW_LAYER})
target_link_libraries (ethercat ${CMAKE_THREAD_LIBS_INIT} ${libosal_LIBS})
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ mkdir build
cd build
# Please change the path to the install dir. If you chose a global install you can omit the CMAKE_PREFIX_PATH option
# You can specify which EtherCAT devices should be included into the build with -DECAT_DEVICE="sock_raw+sock_raw_mmaped+..."
cmake .. -DCMAKE_PREFIX_PATH=<installdir of libosal> -DECAT_DEVICE="sock_raw+sock_raw_mmaped"
cmake -DCMAKE_PREFIX_PATH=<installdir of libosal> -DECAT_DEVICE="sock_raw+sock_raw_mmaped" ..
cmake --build .
```

Expand Down
15 changes: 15 additions & 0 deletions cmake/cmake_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,21 @@
/* Define to the version of this package. */
#cmakedefine LIBETHERCAT_VERSION "@LIBETHERCAT_VERSION@"

/* Define to build DEVICE_SOCK_RAW_LEGACY. */
#cmakedefine LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_LEGACY ${LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_LEGACY}

/* Define to build DEVICE_SOCK_RAW_MMAPED. */
#cmakedefine LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_MMAPED ${LIBETHERCAT_BUILD_DEVICE_SOCK_RAW_MMAPED}

/* Define to build DEVICE_FILE. */
#cmakedefine LIBETHERCAT_BUILD_DEVICE_FILE ${LIBETHERCAT_BUILD_DEVICE_FILE}

/* Define to build BUILD_DEVICE_PIKEOS. */
#cmakedefine LIBETHERCAT_BUILD_DEVICE_PIKEOS ${LIBETHERCAT_BUILD_DEVICE_PIKEOS}

/* Define to build BUILD_DEVICE_BPD. */
#cmakedefine LIBETHERCAT_BUILD_DEVICE_BPF ${LIBETHERCAT_BUILD_DEVICE_BPF}

/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
#undef PTHREAD_CREATE_JOINABLE
Expand Down

0 comments on commit 388ac34

Please sign in to comment.