mostly cosmetical cleanup of CMakeLists

pull/31/head
Steffen Vogel 8 years ago
parent 4fb3141088
commit 064bfa902e

@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 2.8)
# automagically detect if we should cross-compile # automagically detect if we should cross-compile
if(DEFINED ENV{TOOLCHAIN}) if(DEFINED ENV{TOOLCHAIN})
set(CMAKE_C_COMPILER $ENV{TOOLCHAIN}gcc) set(CMAKE_C_COMPILER $ENV{TOOLCHAIN}gcc)
set(CMAKE_CXX_COMPILER $ENV{TOOLCHAIN}g++) set(CMAKE_CXX_COMPILER $ENV{TOOLCHAIN}g++)
set(CMAKE_AR "$ENV{TOOLCHAIN}ar" CACHE FILEPATH "CW archiver" FORCE) set(CMAKE_AR "$ENV{TOOLCHAIN}ar" CACHE FILEPATH "CW archiver" FORCE)
endif() endif()
project(libiec61850) project(libiec61850)
@ -32,20 +32,15 @@ option(BUILD_PYTHON_BINDINGS "Build Python bindings" OFF)
option(CONFIG_MMS_SINGLE_THREADED "Compile for single threaded version" ON) option(CONFIG_MMS_SINGLE_THREADED "Compile for single threaded version" ON)
option(CONFIG_MMS_THREADLESS_STACK "Optimize stack for threadless operation (warning: single- or multi-threaded server will not work!)" OFF) option(CONFIG_MMS_THREADLESS_STACK "Optimize stack for threadless operation (warning: single- or multi-threaded server will not work!)" OFF)
option(CONFIG_ACTIVATE_TCP_KEEPALIVE "Activate TCP keepalive" ON)
# choose the library features which shall be included
option(CONFIG_INCLUDE_GOOSE_SUPPORT "Build with GOOSE support" ON) option(CONFIG_INCLUDE_GOOSE_SUPPORT "Build with GOOSE support" ON)
# choose the library features which shall be included
option(CONFIG_IEC61850_CONTROL_SERVICE "Build with support for IEC 61850 control features" ON) option(CONFIG_IEC61850_CONTROL_SERVICE "Build with support for IEC 61850 control features" ON)
option(CONFIG_IEC61850_REPORT_SERVICE "Build with support for IEC 61850 reporting services" ON) option(CONFIG_IEC61850_REPORT_SERVICE "Build with support for IEC 61850 reporting services" ON)
option(CONFIG_IEC61850_LOG_SERVICE "Build with support for IEC 61850 logging services" ON) option(CONFIG_IEC61850_LOG_SERVICE "Build with support for IEC 61850 logging services" ON)
option(CONFIG_IEC61850_SETTING_GROUPS "Build with support for IEC 61850 setting group services" ON) option(CONFIG_IEC61850_SETTING_GROUPS "Build with support for IEC 61850 setting group services" ON)
option(CONFIG_ACTIVATE_TCP_KEEPALIVE "Activate TCP keepalive" ON)
set(CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE "8000" CACHE STRING "Default buffer size for buffered reports in byte" ) set(CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE "8000" CACHE STRING "Default buffer size for buffered reports in byte" )
# advanced options # advanced options
@ -62,17 +57,17 @@ option(DEBUG_MMS_CLIENT "Enable MMS CLIENT printf debugging" OFF)
# DEBUG_IED_CLIENT DEBUG_MMS_SERVER DEBUG_MMS_CLIENT) # DEBUG_IED_CLIENT DEBUG_MMS_SERVER DEBUG_MMS_CLIENT)
include_directories( include_directories(
${CMAKE_CURRENT_BINARY_DIR}/config config
${CMAKE_CURRENT_LIST_DIR}/src/common/inc src/common/inc
${CMAKE_CURRENT_LIST_DIR}/src/goose src/goose
${CMAKE_CURRENT_LIST_DIR}/src/sampled_values src/sampled_values
${CMAKE_CURRENT_LIST_DIR}/src/hal/inc src/hal/inc
${CMAKE_CURRENT_LIST_DIR}/src/iec61850/inc src/iec61850/inc
${CMAKE_CURRENT_LIST_DIR}/src/iec61850/inc_private src/iec61850/inc_private
${CMAKE_CURRENT_LIST_DIR}/src/mms/inc src/mms/inc
${CMAKE_CURRENT_LIST_DIR}/src/mms/inc_private src/mms/inc_private
${CMAKE_CURRENT_LIST_DIR}/src/mms/iso_mms/asn1c src/mms/iso_mms/asn1c
${CMAKE_CURRENT_LIST_DIR}/src/logging src/logging
) )
set(API_HEADERS set(API_HEADERS
@ -114,42 +109,42 @@ set(API_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/config/stack_config.h ${CMAKE_CURRENT_BINARY_DIR}/config/stack_config.h
) )
IF(MSVC) if(MSVC)
include_directories( include_directories(
src/vs src/vs
) )
ENDIF(MSVC) endif(MSVC)
# write the detected stuff to this file # write the detected stuff to this file
configure_file(${CMAKE_CURRENT_LIST_DIR}/config/stack_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config/stack_config.h) configure_file(${CMAKE_CURRENT_LIST_DIR}/config/stack_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config/stack_config.h)
if(BUILD_EXAMPLES) if(BUILD_EXAMPLES)
add_subdirectory(examples) add_subdirectory(examples)
endif(BUILD_EXAMPLES) endif(BUILD_EXAMPLES)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/src) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/src)
INSTALL(FILES ${API_HEADERS} DESTINATION include/libiec61850 COMPONENT Development) install(FILES ${API_HEADERS} DESTINATION include/libiec61850 COMPONENT Development)
IF(BUILD_PYTHON_BINDINGS) if(BUILD_PYTHON_BINDINGS)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/pyiec61850) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/pyiec61850)
ENDIF(BUILD_PYTHON_BINDINGS) endif(BUILD_PYTHON_BINDINGS)
IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
INCLUDE(InstallRequiredSystemLibraries) include(InstallRequiredSystemLibraries)
SET(CPACK_PACKAGE_DESCRIPTION "IEC 61850 MMS/GOOSE client and server library") set(CPACK_PACKAGE_DESCRIPTION "IEC 61850 MMS/GOOSE client and server library")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "IEC 61850 MMS/GOOSE client and server library") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "IEC 61850 MMS/GOOSE client and server library")
SET(CPACK_PACKAGE_VENDOR "MZ Automation GmbH") set(CPACK_PACKAGE_VENDOR "MZ Automation GmbH")
SET(CPACK_PACKAGE_CONTACT "info@libiec61850.com") set(CPACK_PACKAGE_CONTACT "info@libiec61850.com")
SET(CPACK_PACKAGE_VERSION_MAJOR "${LIB_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MAJOR "${LIB_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${LIB_VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_MINOR "${LIB_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${LIB_VERSION_PATCH}") set(CPACK_PACKAGE_VERSION_PATCH "${LIB_VERSION_PATCH}")
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CMAKE_SYSTEM_PROCESSOR}") set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CMAKE_SYSTEM_PROCESSOR}")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
SET(CPACK_COMPONENTS_ALL Libraries Development Applications) set(CPACK_COMPONENTS_ALL Libraries Development Applications)
#set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_PROJECT_NAME}") #set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_PROJECT_NAME}")
INCLUDE(CPack)
ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") include(CPack)
endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")

@ -11,35 +11,34 @@ add_subdirectory(server_example_61400_25)
add_subdirectory(server_example_setting_groups) add_subdirectory(server_example_setting_groups)
add_subdirectory(server_example_logging) add_subdirectory(server_example_logging)
add_subdirectory(server_example_files) add_subdirectory(server_example_files)
add_subdirectory(iec61850_client_example1) add_subdirectory(iec61850_client_example1)
add_subdirectory(iec61850_client_example2) add_subdirectory(iec61850_client_example2)
add_subdirectory(iec61850_client_example3) add_subdirectory(iec61850_client_example3)
add_subdirectory(iec61850_client_example4) add_subdirectory(iec61850_client_example4)
add_subdirectory(iec61850_client_example5) add_subdirectory(iec61850_client_example5)
IF(WIN32)
else()
add_subdirectory(iec61850_client_example_files)
endif()
add_subdirectory(iec61850_client_example_reporting) add_subdirectory(iec61850_client_example_reporting)
add_subdirectory(iec61850_client_example_log) add_subdirectory(iec61850_client_example_log)
IF(WIN32) if(NOT WIN32)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/winpcap/Lib/wpcap.lib") add_subdirectory(iec61850_client_example_files)
message("Found winpcap -> compile examples for GOOSE and SV")
add_subdirectory(server_example_goose)
add_subdirectory(goose_subscriber)
add_subdirectory(goose_publisher)
add_subdirectory(sv_subscriber)
add_subdirectory(iec61850_9_2_LE_example)
add_subdirectory(iec61850_sv_client_example)
add_subdirectory(sv_publisher)
endif() endif()
if(WIN32)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/winpcap/Lib/wpcap.lib")
set(BUILD_SV_GOOSE_EXAMPLES ON)
message("Found winpcap -> compile examples for GOOSE and SV")
endif()
else() else()
add_subdirectory(server_example_goose) set(BUILD_SV_GOOSE_EXAMPLES ON)
add_subdirectory(goose_subscriber) endif()
add_subdirectory(goose_publisher)
add_subdirectory(sv_subscriber) if(${BUILD_SV_GOOSE_EXAMPLES})
add_subdirectory(iec61850_9_2_LE_example) add_subdirectory(server_example_goose)
add_subdirectory(iec61850_sv_client_example) add_subdirectory(goose_subscriber)
add_subdirectory(sv_publisher) add_subdirectory(goose_publisher)
add_subdirectory(sv_subscriber)
add_subdirectory(iec61850_9_2_LE_example)
add_subdirectory(iec61850_sv_client_example)
add_subdirectory(sv_publisher)
endif() endif()

@ -1,23 +1,36 @@
FIND_PACKAGE(SWIG REQUIRED) find_package(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE}) include(${SWIG_USE_FILE})
FIND_PACKAGE(PythonLibs REQUIRED)
FIND_PACKAGE ( PythonInterp ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED ) find_package(PythonLibs REQUIRED)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH}) find_package(PythonInterp ${PYTHONLIBS_VERSION_STRING} EXACT REQUIRED)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "") include_directories(${PYTHON_INCLUDE_PATH})
SET_PROPERTY(SOURCE iec61850.i PROPERTY CPLUSPLUS ON) include_directories(${CMAKE_CURRENT_SOURCE_DIR})
SWIG_ADD_MODULE(iec61850 python iec61850.i)
IF(WIN32) set(CMAKE_SWIG_FLAGS "")
SWIG_LINK_LIBRARIES(iec61850 ${PYTHON_LIBRARIES} iec61850 ws2_32) set_property(SOURCE iec61850.i PROPERTY CPLUSPLUS ON)
ELSE()
SWIG_LINK_LIBRARIES(iec61850 ${PYTHON_LIBRARIES} iec61850-shared) if(WIN32)
ENDIF(WIN32) set(LIBS iec61850 ws2_32)
EXECUTE_PROCESS ( #Finding python modules install path else()
COMMAND ${PYTHON_EXECUTABLE} -c set(LIBS iec61850 iec61850-shared)
"import site, sys; sys.stdout.write(site.getsitepackages()[-1])" endif()
OUTPUT_VARIABLE PYTHON_SITE_DIR
) swig_add_library(iec61850
INSTALL ( FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION ${PYTHON_SITE_DIR}) LANGUAGE python
INSTALL ( TARGETS _iec61850 LIBRARY DESTINATION ${PYTHON_SITE_DIR}) SOURCES iec61850.i
)
swig_link_libraries(iec61850 ${PYTHON_LIBRARIES} ${LIBS})
# Finding python modules install path
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c
"import site, sys; sys.stdout.write(site.getsitepackages()[-1])"
OUTPUT_VARIABLE PYTHON_SITE_DIR
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION ${PYTHON_SITE_DIR})
install(TARGETS _iec61850 LIBRARY DESTINATION ${PYTHON_SITE_DIR})
add_test(test_pyiec61850 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/test_pyiec61850.py) add_test(test_pyiec61850 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/test_pyiec61850.py)

Loading…
Cancel
Save