From cb7b23e2201744b9558d1f3cbbf4225c84d8bc25 Mon Sep 17 00:00:00 2001
From: Christoph Junghans <junghans@lanl.gov>
Date: Fri, 22 Jun 2018 11:11:09 -0600
Subject: [PATCH] cmake: add BUILD_EXE option

---
 cmake/CMakeLists.txt | 46 +++++++++++++++++++++++++++-----------------
 1 file changed, 28 insertions(+), 18 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 32c6e82920..e64e44995d 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -57,6 +57,15 @@ endif()
 ########################################################################
 # User input options                                                   #
 ########################################################################
+option(BUILD_EXE "Build lmp binary" ON)
+if(BUILD_EXE)
+  set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
+  mark_as_advanced(LAMMPS_MACHINE)
+  if(LAMMPS_MACHINE)
+    set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
+  endif()
+endif()
+
 option(BUILD_LIB "Build LAMMPS library" OFF)
 if(BUILD_LIB)
   option(BUILD_SHARED_LIBS "Build shared library" OFF)
@@ -69,6 +78,11 @@ if(BUILD_LIB)
     set(LIB_SUFFIX "_${LIB_SUFFIX}")
   endif()
 endif()
+
+if(NOT BUILD_EXE AND NOT BUILD_LIB)
+  message(FATAL_ERROR "You need to at least enable one of two following options: BUILD_LIB or BUILD_EXE")
+endif()
+
 option(DEVELOPER_MODE "Enable developer mode" OFF)
 mark_as_advanced(DEVELOPER_MODE)
 option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
@@ -110,12 +124,6 @@ if(LAMMPS_EXCEPTIONS)
   set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS")
 endif()
 
-set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
-mark_as_advanced(LAMMPS_MACHINE)
-if(LAMMPS_MACHINE)
-  set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
-endif()
-
 option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
 
 option(ENABLE_TESTING "Enable testing" OFF)
@@ -832,20 +840,22 @@ else()
   list(APPEND LMP_SOURCES ${LIB_SOURCES})
 endif()
 
-add_executable(lmp ${LMP_SOURCES})
-if(BUILD_LIB)
-  target_link_libraries(lmp lammps)
-else()
-  target_link_libraries(lmp ${LAMMPS_LINK_LIBS})
-  if(LAMMPS_DEPS)
-    add_dependencies(lmp ${LAMMPS_DEPS})
+if(BUILD_EXE)
+  add_executable(lmp ${LMP_SOURCES})
+  if(BUILD_LIB)
+    target_link_libraries(lmp lammps)
+  else()
+    target_link_libraries(lmp ${LAMMPS_LINK_LIBS})
+    if(LAMMPS_DEPS)
+      add_dependencies(lmp ${LAMMPS_DEPS})
+    endif()
   endif()
-endif()
   
-set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
-install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
-if(ENABLE_TESTING)
-  add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
+  set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
+  install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
+  if(ENABLE_TESTING)
+    add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
+  endif()
 endif()
 
 ###############################################################################
-- 
GitLab