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

CMakeLists.txt

Blame
  • Armin Co's avatar
    Armin Co authored
    37b596db
    History
    CMakeLists.txt 1.79 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)
    include_directories(libs/spdlog/include)
    include_directories(src/observ)
    
    include_directories(src/com)
    add_library(soc_com
        src/com/Protocol.cpp
        src/com/ProtocolSgm.cpp
        src/com/Socket.cpp)
    
    # 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/smart_grid)
    
    add_executable(smart_grid.exe
        src/smg_server.cpp
        src/smart_grid/SmartGridModell.cpp
        src/smart_grid/StateLogger.cpp
        src/i2c/Node.cpp
        src/com/Socket.cpp
        src/com/Protocol.cpp
        src/smart_grid/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/apps/SmgOPC_server/opc_server.cpp)
    target_include_directories(opc_server.exe PUBLIC libs/freeopcua/include)
    target_link_libraries(opc_server.exe opcuacore opcuaserver)