Commit 335ef11a authored by Richard Berger's avatar Richard Berger
Browse files

Added style header generation with CMake

parent c07adac2
Loading
Loading
Loading
Loading
+36 −5
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@ set(SOVERSION 0)
set(LAMMPS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../src)
set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../lib)

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/Modules)

if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_C_FLAGS)
  #release comes with -O3 by default
  set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
@@ -42,6 +44,11 @@ foreach(PKG ${PACKAGES})
  option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
endforeach()

set(ACCEL_PACKAGES USER-OMP)
foreach(PKG ${ACCEL_PACKAGES})
  option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
endforeach()

find_package(JPEG)
if(JPEG_FOUND)
  add_definitions(-DLAMMPS_JPEG)
@@ -101,24 +108,48 @@ if(NOT ENABLE_MPI)
  include_directories(${LAMMPS_SOURCE_DIR}/STUBS)
endif()

include(StyleHeaderUtils)
RegisterStyles(${LAMMPS_SOURCE_DIR})

# packages which include entire content when enabled

foreach(PKG ${PACKAGES})
  if(ENABLE_${PKG})
    file(GLOB ${PKG}_SOURCES ${LAMMPS_SOURCE_DIR}/${PKG}/*.cpp)
    set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})

    # detects styles in package and adds them to global list
    RegisterStyles(${${PKG}_SOURCES_DIR})

    file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
    list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
    include_directories(${LAMMPS_SOURCE_DIR}/${PKG})
    include_directories(${${PKG}_SOURCES_DIR})
  endif()
endforeach()

# packages which selectively include variants based on enabled styles
# e.g. accelerator packages

# TODO

if(ENABLE_REAX)
  enable_language(Fortran)
  file(GLOB REAX_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/reax/*.F)
  list(APPEND LIB_SOURCES ${REAX_SOURCES})
  include_directories(${LAMMPS_LIB_SOURCE_DIR}/reax)
endif()


######################################################
# Generate style headers based on global list of
# styles registered during package selection           
######################################################
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)

GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})

include_directories(${LAMMPS_SOURCE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/Headers)
configure_file(${CMAKE_SOURCE_DIR}/Headers/package.h.cmakein ${CMAKE_BINARY_DIR}/cmake/package.h)
include_directories(${CMAKE_BINARY_DIR}/cmake)
include_directories(${LAMMPS_STYLE_HEADERS_DIR})


add_library(lammps ${LIB_SOURCES})
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})

cmake/Headers/package.h.cmakein

deleted100644 → 0
+0 −2
Original line number Diff line number Diff line
#cmakedefine ENABLE_ASPHERE
#cmakedefine ENABLE_REAX

cmake/Headers/style_angle.h

deleted100644 → 0
+0 −3
Original line number Diff line number Diff line
#include "package.h"
#include "angle_hybrid.h"
#include "angle_zero.h"

cmake/Headers/style_atom.h

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
#include "package.h"
#include "atom_vec_atomic.h"
#include "atom_vec_body.h"
#include "atom_vec_charge.h"
#include "atom_vec_ellipsoid.h"
#include "atom_vec_hybrid.h"
#include "atom_vec_line.h"
#include "atom_vec_sphere.h"
#include "atom_vec_tri.h"

cmake/Headers/style_body.h

deleted100644 → 0
+0 −1
Original line number Diff line number Diff line
#include "package.h"
Loading