cmake cleanups

This commit is contained in:
Axel Kohlmeyer
2023-08-02 04:58:38 -04:00
parent 1fa2060175
commit c99d0f5452
2 changed files with 14 additions and 8 deletions

View File

@ -1,4 +1,4 @@
# preset that will build portable multi-arch binaries on macOS without MPI and OpenMP # preset that will build portable multi-arch binaries on macOS without MPI
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE)
@ -10,5 +10,5 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(BUILD_MPI FALSE CACHE BOOL "" FORCE) set(BUILD_MPI FALSE CACHE BOOL "" FORCE)
set(BUILD_OMP FALSE CACHE BOOL "" FORCE)
set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE)
set(LAMMPS_EXCEPTIONS TRUE CACHE BOOL "" FORCE)

View File

@ -9,13 +9,15 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
# checks
option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF) option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF)
mark_as_advanced(LAMMPS_GUI_USE_PLUGIN)
# checks
if(NOT LAMMPS_EXCEPTIONS) if(NOT LAMMPS_EXCEPTIONS)
message(FATAL_ERROR "Must enable LAMMPS_EXCEPTIONS for building the LAMMPS GUI") message(FATAL_ERROR "Must enable LAMMPS_EXCEPTIONS for building the LAMMPS GUI")
endif() endif()
if(BUILD_MPI) if(BUILD_MPI)
message(FATAL_ERROR "Must disable BUILD_MPI or building the LAMMPS GUI") message(FATAL_ERROR "Must disable BUILD_MPI for building the LAMMPS GUI")
endif() endif()
# when this file is included as subdirectory in the LAMMPS build, many settings are directly imported # when this file is included as subdirectory in the LAMMPS build, many settings are directly imported
@ -62,7 +64,8 @@ if(LAMMPS_GUI_USE_PLUGIN)
set(PLUGIN_LOADER_SRC ${LAMMPS_PLUGINLIB_DIR}/liblammpsplugin.c) set(PLUGIN_LOADER_SRC ${LAMMPS_PLUGINLIB_DIR}/liblammpsplugin.c)
endif() endif()
find_package(Qt5 REQUIRED COMPONENTS Widgets) # we require Qt 5 and at least version 5.12 at that.
find_package(Qt5 5.12 REQUIRED COMPONENTS Widgets)
set(PROJECT_SOURCES set(PROJECT_SOURCES
main.cpp main.cpp
@ -72,13 +75,13 @@ set(PROJECT_SOURCES
highlighter.h highlighter.h
imageviewer.cpp imageviewer.cpp
imageviewer.h imageviewer.h
linenumberarea.h
lammpsgui.cpp lammpsgui.cpp
lammpsgui.h lammpsgui.h
lammpsgui.ui lammpsgui.ui
lammpsrunner.h lammpsrunner.h
lammpswrapper.cpp lammpswrapper.cpp
lammpswrapper.h lammpswrapper.h
linenumberarea.h
preferences.cpp preferences.cpp
preferences.h preferences.h
stdcapture.cpp stdcapture.cpp
@ -97,6 +100,7 @@ add_executable(lammps-gui
${PROJECT_SOURCES} ${PROJECT_SOURCES}
) )
# compilation settings
if(LAMMPS_GUI_USE_PLUGIN) if(LAMMPS_GUI_USE_PLUGIN)
target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_USE_PLUGIN) target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_USE_PLUGIN)
target_include_directories(lammps-gui PRIVATE ${LAMMPS_PLUGINLIB_DIR}) target_include_directories(lammps-gui PRIVATE ${LAMMPS_PLUGINLIB_DIR})
@ -112,6 +116,7 @@ if(BUILD_OMP)
target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX) target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX)
endif() endif()
# when compiling on macOS, create an "app bundle"
if(APPLE) if(APPLE)
set_target_properties(lammps-gui PROPERTIES set_target_properties(lammps-gui PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${LAMMPS_DIR}/cmake/packaging/MacOSXBundleInfo.plist.in MACOSX_BUNDLE_INFO_PLIST ${LAMMPS_DIR}/cmake/packaging/MacOSXBundleInfo.plist.in
@ -121,7 +126,7 @@ if(APPLE)
MACOSX_BUNDLE_COPYRIGHT "(c) 2003 - 2023, The LAMMPS Developers" MACOSX_BUNDLE_COPYRIGHT "(c) 2003 - 2023, The LAMMPS Developers"
MACOSX_BUNDLE TRUE MACOSX_BUNDLE TRUE
) )
# additional steps to populate the bundle tree and create the .dmg image file # additional targets to populate the bundle tree and create the .dmg image file
set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents) set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents)
add_custom_target(complete-bundle add_custom_target(complete-bundle
${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin
@ -154,6 +159,7 @@ if(APPLE)
BYPRODUCT LAMMPS-macOS-multiarch.dmg BYPRODUCT LAMMPS-macOS-multiarch.dmg
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
) )
# settings or building on Windows with Visual Studio
elseif(MSVC) elseif(MSVC)
install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES $<TARGET_RUNTIME_DLLS:lammps-gui> TYPE BIN) install(FILES $<TARGET_RUNTIME_DLLS:lammps-gui> TYPE BIN)