project(XtalOpt)
set(CMAKE_MODULE_PATH ${XtalOpt_SOURCE_DIR}/cmake/modules)
# Minimum version of CMake that can be used
cmake_minimum_required(VERSION 2.6)
# Find the Avogadro library if it is installed
find_package(Avogadro REQUIRED)
set(QT_MIN_VERSION "4.5.0")
find_package(Qt4 REQUIRED)
find_package(OpenBabel2 REQUIRED)
# Set up the build environment
include(${Avogadro_USE_FILE})
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${OPENBABEL2_INCLUDE_DIR}
)
link_directories(${OPENBABEL2_LIBRARIES_DIRS})
# Generic global search stuff
set( generic_SRCS
src/generic/optbase.cpp
src/generic/queuemanager.cpp
src/generic/structure.cpp
src/generic/tracker.cpp
src/generic/xtal.cpp
src/generic/optimizer.cpp
src/generic/bt.cpp)
qt4_automoc(${generic_SRCS})
add_library(globalsearch STATIC ${generic_SRCS})
target_link_libraries( globalsearch
${LINK_LIBS}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${OPENBABEL2_LIBRARIES}
avogadro)
# spglib stuff
set( spglib_SRCS
src/spglib/bravais.c
src/spglib/bravais_art.c
src/spglib/cell.c
src/spglib/debug.c
src/spglib/mathfunc.c
src/spglib/mathfunc.h
src/spglib/pointgroup.c
src/spglib/primitive.c
src/spglib/spacegroup.c
src/spglib/spacegroup.h
src/spglib/spacegroup_data.c
src/spglib/spacegroup_data.h
src/spglib/spacegroup_database.c
src/spglib/spacegroup_database.h
src/spglib/spglib.c
src/spglib/symmetry.c
src/spglib/symmetry_kpoint.c)
add_library(spglib STATIC ${spglib_SRCS})
# Suppress spglib warnings
set_target_properties( spglib PROPERTIES
COMPILE_FLAGS "-w")
# Actual xtalopt info
set( xtalopt_SRCS
src/extension.cpp
src/xtalopt/xtalopt.cpp
src/xtalopt/genetic.cpp
src/xtalopt/optimizers/xtaloptoptimizer.cpp
src/xtalopt/optimizers/vasp.cpp
src/xtalopt/optimizers/gulp.cpp
src/xtalopt/optimizers/pwscf.cpp
src/xtalopt/testing/xtalopttest.cpp
src/xtalopt/ui/dialog.cpp
src/xtalopt/ui/tab_init.cpp
src/xtalopt/ui/tab_edit.cpp
src/xtalopt/ui/tab_opt.cpp
src/xtalopt/ui/tab_sys.cpp
src/xtalopt/ui/tab_progress.cpp
src/xtalopt/ui/tab_plot.cpp
src/xtalopt/ui/tab_log.cpp)
set( xtalopt_UIS
src/xtalopt/ui/dialog.ui
src/xtalopt/ui/tab_init.ui
src/xtalopt/ui/tab_edit.ui
src/xtalopt/ui/tab_opt.ui
src/xtalopt/ui/tab_sys.ui
src/xtalopt/ui/tab_progress.ui
src/xtalopt/ui/tab_plot.ui
src/xtalopt/ui/tab_log.ui)
avogadro_plugin(xtalopt "${xtalopt_SRCS}" "${xtalopt_UIS}")
add_dependencies(xtalopt globalsearch spglib)
target_link_libraries( xtalopt
${LINK_LIBS}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${OPENBABEL2_LIBRARIES}
${OPENGL_LIBRARIES}
QPlotWidget
globalsearch
spglib)