Select Git revision
CMakeLists.txt
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)