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/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/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)