ADD_LIBRARY(CelesteCore Celeste.cpp CelesteObject.cpp COMMotion.cpp Config.cpp Constraint.cpp ConstraintShake.cpp DistRestraint.cpp DynamicsMode.cpp ElectrostaticObject.cpp Extend.cpp ForceField.cpp ForceFieldObject.cpp MiniCell.cpp MmSystem.cpp PBC.cpp PosRestraint.cpp Read.cpp RunMode.cpp SubBox.cpp Thermostat.cpp Write.cpp WriteTrr.cpp ZeroMultipoleSum.cpp)

IF (CELESTE_WO_NS)
    ADD_DEFINITIONS(-DF_WO_NS)
    ADD_EXECUTABLE(omegagene_wons main.cpp)
    TARGET_LINK_LIBRARIES(omegagene_wons CelesteCore CelesteRandom)
ELSEIF (CELESTE_GPU)
    ADD_DEFINITIONS(-DF_CUDA)
    ADD_EXECUTABLE(omegagene_gpu main.cpp)
    TARGET_LINK_LIBRARIES(omegagene_gpu CelesteCUDA CelesteCore CelesteRandom)
ELSEIF (CELESTE_GPUECP)
    ADD_DEFINITIONS(-DF_CUDA -DF_ECP)
    ADD_EXECUTABLE(omegagene_gpuecp main.cpp)
    TARGET_LINK_LIBRARIES(omegagene_gpuecp CelesteCUDA CelesteCore CelesteRandom)
ELSE()
    ADD_EXECUTABLE(omegagene main.cpp)
    TARGET_LINK_LIBRARIES(omegagene CelesteCore CelesteRandom)
    # IF (CELESTE_USE_MPI)
    #     TARGET_LINK_LIBRARIES( celeste ${MPI_LIBRARIES} )
    # ENDIF()
ENDIF()
