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 2.10 KiB
    cmake_minimum_required(VERSION 3.6)
    
    project(SmartGridModel)
    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 OPC UA
    if(BUILD_OPC_UA_FOR_INSTALL)
        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)
    endif(BUILD_OPC_UA_FOR_INSTALL)
    
    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)
    
    
    add_executable(smart_grid.exe
        src/apps/smart_grid/smg_server.cpp
        src/apps/smart_grid/SmgStateMachine.cpp
        src/apps/smart_grid/SmartOpcServer.cpp
        src/smart_grid/SmartGridModel.cpp
        src/i2c/Node.cpp
        src/com/Socket.cpp
        src/com/Protocol.cpp
        src/smart_grid/HardwareControl.cpp
    )
    
    # target_link_libraries(smart_grid.exe PRIVATE spdlog)
    target_compile_options(smart_grid.exe PRIVATE -Wall -Wextra -pedantic)
    target_include_directories(smart_grid.exe PUBLIC libs/freeopcua/include)
    target_link_libraries(smart_grid.exe PUBLIC opcuacore opcuaserver)