From d6bd976b2456104a56f039ee5c5b83e82a5daa77 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Thu, 21 Mar 2019 12:15:45 +0100 Subject: build: Set specific compiler flags for SWIG target The compiler flags for the SWIG target were added to the global CMAKE_C_FLAGS used for the entire project. This sets the flags uniquely for the SWIG target. The eth has a similar case for the c99 flag. There was a lingering include in dev.c that was removed. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- CMakeLists.txt | 2 +- include/ouroboros/wrap/CMakeLists.txt | 23 ++++++++++++++--------- src/ipcpd/eth/CMakeLists.txt | 5 ++++- src/lib/CMakeLists.txt | 1 - src/lib/dev.c | 2 -- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7bbff2a..310d9925 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ include(GNUInstallDirs) set(PACKAGE_VERSION_MAJOR 0) set(PACKAGE_VERSION_MINOR 15) -set(PACKAGE_VERSION_PATCH 1) +set(PACKAGE_VERSION_PATCH 2) set(PACKAGE_NAME "${CMAKE_PROJECT_NAME}") set(PACKAGE_DESCRIPTION "The Ouroboros prototype") diff --git a/include/ouroboros/wrap/CMakeLists.txt b/include/ouroboros/wrap/CMakeLists.txt index 9a5e1075..b11f89de 100644 --- a/include/ouroboros/wrap/CMakeLists.txt +++ b/include/ouroboros/wrap/CMakeLists.txt @@ -20,12 +20,6 @@ else () message(STATUS "Python found: Python bindings will be built") include_directories(${PYTHON_INCLUDE_PATH}) - # Python assumes C99 since Python 3.6 - test_and_set_c_compiler_flag_global(-std=c99) - # SWIG generates code for varargs with an unused parameter - test_and_set_c_compiler_flag_global(-Wno-unused-parameter) - # SWIG generates code with unsafe strncpy() - test_and_set_c_compiler_flag_global(-Wno-stringop-truncation) # CMake > 3.8 deprecates swig_add_module if (${CMAKE_VERSION} VERSION_LESS 3.8.0) swig_add_module(ouroboros python ouroboros.i) @@ -36,6 +30,12 @@ else () TYPE MODULE) endif() + # Python assumes C99 since Python 3.6 + # SWIG generates code for varargs with an unused parameter + # SWIG generates code with unsafe strncpy() + set_target_properties(ouroboros PROPERTIES + COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wno-unused-parameter \ + -Wno-stringop-truncation") swig_link_libraries(ouroboros ${PYTHON_LIBRARIES} ouroboros-common ouroboros-dev ouroboros-irm) @@ -58,9 +58,14 @@ else () ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH}) endif () - install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/_${SWIG_MODULE_ouroboros_REAL_NAME}.so - DESTINATION ${PYTHON_MODULE_PATH}) + if (${CMAKE_VERSION} VERSION_LESS "3.13") + install ( + ${CMAKE_CURRENT_BINARY_DIR}/${SWIG_MODULE_${ouroboros}_REAL_NAME}.so + DESTINATION ${PYTHON_MODULE_PATH}) + else () + install (TARGETS ouroboros + DESTINATION ${PYTHON_MODULE_PATH}) + endif () install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ouroboros.py DESTINATION ${PYTHON_MODULE_PATH}) endif () diff --git a/src/ipcpd/eth/CMakeLists.txt b/src/ipcpd/eth/CMakeLists.txt index 89575b6b..d7105b4f 100644 --- a/src/ipcpd/eth/CMakeLists.txt +++ b/src/ipcpd/eth/CMakeLists.txt @@ -66,7 +66,6 @@ if (NOT HAVE_RAW_SOCKETS AND NOT HAVE_BPF AND NETMAP_C_INCLUDE_DIR) "Disable netmap support for ETH IPCPs") if (NOT DISABLE_NETMAP) message(STATUS "Netmap support for Ethernet IPCPs enabled") - test_and_set_c_compiler_flag_global(-std=c99) set(HAVE_NETMAP TRUE PARENT_SCOPE) set(HAVE_ETH TRUE) else () @@ -109,6 +108,10 @@ if (HAVE_ETH) endif () if (HAVE_NETMAP AND NOT APPLE) + set_target_properties(ipcpd-eth-llc PROPERTIES + COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99") + set_target_properties(ipcpd-eth-dix PROPERTIES + COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99") target_include_directories(ipcpd-eth-llc PUBLIC ${NETMAP_C_INCLUDE_DIR}) target_include_directories(ipcpd-eth-dix PUBLIC diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index c18860a4..d5e80fc9 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -234,7 +234,6 @@ target_link_libraries(ouroboros-common ${LIBRT_LIBRARIES} ${LIBGCRYPT_LIBRARIES} ${FUSE_LIBRARIES}) target_link_libraries(ouroboros-dev ouroboros-common) - target_link_libraries(ouroboros-irm ouroboros-common) install(TARGETS ouroboros-common LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/src/lib/dev.c b/src/lib/dev.c index 10b34e4e..6d5676af 100644 --- a/src/lib/dev.c +++ b/src/lib/dev.c @@ -26,8 +26,6 @@ #define _POSIX_C_SOURCE 200809L #endif -#include - #include "config.h" #include -- cgit v1.2.3