
add_executable(gcompose 
    src/main.cpp
    src/MainWindow.h
    src/MainWindow.cpp
    src/ViewportPane.h
    src/ViewportPane.cpp
    src/MainPanel.h
    src/MainPanel.cpp
    src/ContextPanel.h
    src/ContextPanel.cpp
    src/ContextModel.h
    src/ContextModel.cpp
    src/StyleManager.h
    src/StyleManager.cpp
    src/PropertyWidgets.h
    src/PropertyWidgets.cpp
    src/PropertiesPanel.h
    src/PropertiesPanel.cpp
    src/PreferencesDialog.h
    src/PreferencesDialog.cpp
)

set_target_properties(gcompose PROPERTIES
    AUTOMOC ON
    AUTOUIC ON
    AUTORCC ON
)

target_include_directories(gcompose PRIVATE 
    ${SRC_DIR}
    ${PROJECT_BINARY_DIR}
    ${Geant4_INCLUDE_DIRS}
    ${VTK_INCLUDE_DIRS}
)

# Filter Geant4 libraries to remove Qt-dependent ones
set(Geant4_LIBS_FILTERED ${Geant4_LIBRARIES})
if(Geant4_LIBS_FILTERED)
    list(REMOVE_ITEM Geant4_LIBS_FILTERED Geant4::G4interfaces Geant4::G4OpenGL Geant4::G4visQt3D)
endif()

target_link_libraries(gcompose
    mutomCore
    mutomMath
    mutomGeant
    mutomVtk
    mutomRoot
    ${Geant4_LIBS_FILTERED}
    ${VTK_LIBRARIES}
    Qt6::Widgets
    VTK::GUISupportQt
)

install(TARGETS gcompose RUNTIME DESTINATION bin)
