set(PLUGIN_NAME circuits)

list(APPEND HEADERS 
	CircuitElement.h
	Wire.h
	Terminal.h
    ElectronicCircuit.h
	TruthTable.h
	gates/LogicGate.h
	gates/BasicLogicGates.h
	visuals/ElectronicCircuitNode.h
	visuals/CircuitElementNode.h
	visuals/WireNode.h
	visuals/TerminalNode.h
	visuals/LogicGateNode.h
	visuals/LogicGatePrimitiveShapes.h
	)

list(APPEND SOURCES 
	CircuitElement.cpp
	Wire.cpp
	Terminal.cpp
    ElectronicCircuit.cpp
	TruthTable.cpp
	gates/BasicLogicGates.cpp
	gates/LogicGate.cpp
	visuals/ElectronicCircuitNode.cpp
	visuals/CircuitElementNode.cpp
	visuals/WireNode.cpp
	visuals/TerminalNode.cpp
	visuals/LogicGateNode.cpp
	visuals/LogicGatePrimitiveShapes.cpp
	)
   
add_library(${PLUGIN_NAME} SHARED ${SOURCES} ${HEADERS})

target_include_directories(${PLUGIN_NAME} PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_SOURCE_DIR}/gates
	${CMAKE_CURRENT_SOURCE_DIR}/visuals
                              )
target_link_libraries(${PLUGIN_NAME} PUBLIC core visual_elements)
set_property(TARGET ${PLUGIN_NAME} PROPERTY FOLDER plugins)
set_target_properties( ${PLUGIN_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
