Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • feature_scripts
  • develop
  • feature_without_logging
  • feature_opc_server
  • feature_seperate_apps
  • fix_raspi_cmake
  • ss19 protected
  • ss20
9 results

CMakeLists.txt

Blame
  • CMakeLists.txt 1.51 KiB
    cmake_minimum_required(VERSION 3.6)
    
    project(SmartGridModell)
    set(CMAKE_CXX_STANDARD 17)
    
    # Add spdlog for nice and easy logging
    add_subdirectory(libs/spdlog)
    
    include_directories(src)
    
    # Test application to manually send commands to the Arduino
    add_executable(manual_control src/manual_control/ComTest.cpp)
    target_link_libraries(manual_control spdlog)
    
    add_executable(sample_client
        src/manual_control/sample_client.cpp
        src/com/Socket.cpp
        src/com/Protocol.cpp
    )
    target_link_libraries(sample_client spdlog)
    
    # Smart Grid Simulation
    include_directories(src/i2c)
    include_directories(src/com)
    
    add_executable(smart_grid.exe
        src/smg_server.cpp
        src/SmartGridModell.cpp
        src/i2c/Node.cpp
        src/com/Socket.cpp
        src/com/Protocol.cpp
        src/ModelState.cpp
    )
    
    target_link_libraries(smart_grid.exe spdlog)
    target_compile_options(smart_grid.exe PRIVATE -Wall -Wextra -pedantic)
    
    
    # Add OPC UA
    # macro(SET_OPTION option value)
    #   set(${option} ${value} CACHE "" INTERNAL FORCE)
    # endmacro()
    option(BUILD_CLIENT "Build Client" OFF)
    option(BUILD_SERVER "Build Server" ON)
    
    option(SSL_SUPPORT_MBEDTLS "Support rsa-oaep password encryption using mbedtls library " OFF)
    
    option(BUILD_PYTHON "Build Python bindings" OFF)
    option(BUILD_TESTING "Build and run tests" OFF)
    option(BUILD_SHARED_LIBS "Build shared libraries." ON)
    add_subdirectory(libs/freeopcua)
    
    add_executable(opc_server.exe src/opc_server.cpp)
    target_include_directories(opc_server.exe PUBLIC libs/freeopcua/include)
    target_link_libraries(opc_server.exe opcuacore opcuaserver)