Merge branch 'develop' into always-exceptions
# Conflicts: # src/library.cpp
This commit is contained in:
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -1,6 +1,6 @@
|
|||||||
# Contributing to LAMMPS via GitHub
|
# Contributing to LAMMPS via GitHub
|
||||||
|
|
||||||
Thank your for considering to contribute to the LAMMPS software project.
|
Thank you for considering to contribute to the LAMMPS software project.
|
||||||
|
|
||||||
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
||||||
|
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -57,3 +57,6 @@ out/x86
|
|||||||
out/x64
|
out/x64
|
||||||
src/Makefile.package-e
|
src/Makefile.package-e
|
||||||
src/Makefile.package.settings-e
|
src/Makefile.package.settings-e
|
||||||
|
/cmake/build/x64-Debug-Clang
|
||||||
|
/install/x64-GUI-MSVC
|
||||||
|
/install
|
||||||
|
|||||||
@ -1,615 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
|
||||||
# When using CMake 3.4 and later, don't export symbols from executables unless
|
|
||||||
# the CMAKE_ENABLE_EXPORTS variable is set.
|
|
||||||
if(POLICY CMP0065)
|
|
||||||
cmake_policy(SET CMP0065 NEW)
|
|
||||||
endif()
|
|
||||||
if (POLICY CMP0077)
|
|
||||||
cmake_policy(SET CMP0077 NEW)
|
|
||||||
endif()
|
|
||||||
if(CMAKE_EXECUTABLE_SUFFIX)
|
|
||||||
set(CMAKE_EXECUTABLE_SUFFIX_TMP ${CMAKE_EXECUTABLE_SUFFIX})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
project(libjpeg-turbo C)
|
|
||||||
set(VERSION 2.1.3)
|
|
||||||
set(COPYRIGHT_YEAR "1991-2022")
|
|
||||||
string(REPLACE "." ";" VERSION_TRIPLET ${VERSION})
|
|
||||||
list(GET VERSION_TRIPLET 0 VERSION_MAJOR)
|
|
||||||
list(GET VERSION_TRIPLET 1 VERSION_MINOR)
|
|
||||||
list(GET VERSION_TRIPLET 2 VERSION_REVISION)
|
|
||||||
function(pad_number NUMBER OUTPUT_LEN)
|
|
||||||
string(LENGTH "${${NUMBER}}" INPUT_LEN)
|
|
||||||
if(INPUT_LEN LESS OUTPUT_LEN)
|
|
||||||
math(EXPR ZEROES "${OUTPUT_LEN} - ${INPUT_LEN} - 1")
|
|
||||||
set(NUM ${${NUMBER}})
|
|
||||||
foreach(C RANGE ${ZEROES})
|
|
||||||
set(NUM "0${NUM}")
|
|
||||||
endforeach()
|
|
||||||
set(${NUMBER} ${NUM} PARENT_SCOPE)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
pad_number(VERSION_MINOR 3)
|
|
||||||
pad_number(VERSION_REVISION 3)
|
|
||||||
set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION})
|
|
||||||
|
|
||||||
# CMake 3.14 and later sets CMAKE_MACOSX_BUNDLE to TRUE by default when
|
|
||||||
# CMAKE_SYSTEM_NAME is iOS, tvOS, or watchOS, which breaks the libjpeg-turbo
|
|
||||||
# build. (Specifically, when CMAKE_MACOSX_BUNDLE is TRUE, executables for
|
|
||||||
# Apple platforms are built as application bundles, which causes CMake to
|
|
||||||
# complain that our install() directives for executables do not specify a
|
|
||||||
# BUNDLE DESTINATION. Even if CMake did not complain, building executables as
|
|
||||||
# application bundles would break our iOS packages.)
|
|
||||||
set(CMAKE_MACOSX_BUNDLE FALSE)
|
|
||||||
|
|
||||||
string(TIMESTAMP DEFAULT_BUILD "%Y%m%d")
|
|
||||||
set(BUILD ${DEFAULT_BUILD} CACHE STRING "Build string (default: ${DEFAULT_BUILD})")
|
|
||||||
|
|
||||||
# NOTE: On Windows, this does nothing except when using MinGW or Cygwin.
|
|
||||||
# CMAKE_BUILD_TYPE has no meaning in Visual Studio, and it always defaults to
|
|
||||||
# Debug when using NMake.
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
|
||||||
set(CMAKE_BUILD_TYPE Release)
|
|
||||||
endif()
|
|
||||||
message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
|
||||||
|
|
||||||
message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}")
|
|
||||||
|
|
||||||
include(cmakescripts/PackageInfo.cmake)
|
|
||||||
|
|
||||||
# Detect CPU type and whether we're building 64-bit or 32-bit code
|
|
||||||
math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8")
|
|
||||||
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC)
|
|
||||||
set(COUNT 1)
|
|
||||||
foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
|
|
||||||
if(COUNT GREATER 1)
|
|
||||||
message(FATAL_ERROR "The libjpeg-turbo build system does not support multiple values in CMAKE_OSX_ARCHITECTURES.")
|
|
||||||
endif()
|
|
||||||
math(EXPR COUNT "${COUNT}+1")
|
|
||||||
endforeach()
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86_64" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "amd64" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "i[0-9]86" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "ia32")
|
|
||||||
if(BITS EQUAL 64 OR CMAKE_C_COMPILER_ABI MATCHES "ELF X32")
|
|
||||||
set(CPU_TYPE x86_64)
|
|
||||||
else()
|
|
||||||
set(CPU_TYPE i386)
|
|
||||||
endif()
|
|
||||||
if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL ${CPU_TYPE})
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR ${CPU_TYPE})
|
|
||||||
endif()
|
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm")
|
|
||||||
if(BITS EQUAL 64)
|
|
||||||
set(CPU_TYPE arm64)
|
|
||||||
else()
|
|
||||||
set(CPU_TYPE arm)
|
|
||||||
endif()
|
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^ppc" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^powerpc")
|
|
||||||
set(CPU_TYPE powerpc)
|
|
||||||
else()
|
|
||||||
set(CPU_TYPE ${CMAKE_SYSTEM_PROCESSOR_LC})
|
|
||||||
endif()
|
|
||||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
|
|
||||||
CMAKE_OSX_ARCHITECTURES MATCHES "arm64" OR
|
|
||||||
CMAKE_OSX_ARCHITECTURES MATCHES "i386")
|
|
||||||
set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
|
|
||||||
endif()
|
|
||||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
|
|
||||||
set(CPU_TYPE powerpc)
|
|
||||||
endif()
|
|
||||||
if(MSVC_IDE AND CMAKE_GENERATOR_PLATFORM MATCHES "arm64")
|
|
||||||
set(CPU_TYPE arm64)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
message(STATUS "${BITS}-bit build (${CPU_TYPE})")
|
|
||||||
|
|
||||||
macro(report_directory var)
|
|
||||||
if(CMAKE_INSTALL_${var} STREQUAL CMAKE_INSTALL_FULL_${var})
|
|
||||||
message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}}")
|
|
||||||
else()
|
|
||||||
message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}} (${CMAKE_INSTALL_FULL_${var}})")
|
|
||||||
endif()
|
|
||||||
mark_as_advanced(CLEAR CMAKE_INSTALL_${var})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
set(DIRLIST "BINDIR;DATAROOTDIR;DOCDIR;INCLUDEDIR;LIBDIR")
|
|
||||||
if(UNIX)
|
|
||||||
list(APPEND DIRLIST "MANDIR")
|
|
||||||
endif()
|
|
||||||
foreach(dir ${DIRLIST})
|
|
||||||
report_directory(${dir})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# CONFIGURATION OPTIONS
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
macro(boolean_number var)
|
|
||||||
if(${var})
|
|
||||||
set(${var} 1 ${ARGN})
|
|
||||||
else()
|
|
||||||
set(${var} 0 ${ARGN})
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
option(ENABLE_SHARED "Build shared libraries" FALSE)
|
|
||||||
boolean_number(ENABLE_SHARED)
|
|
||||||
option(ENABLE_STATIC "Build static libraries" TRUE)
|
|
||||||
boolean_number(ENABLE_STATIC)
|
|
||||||
option(REQUIRE_SIMD "Generate a fatal error if SIMD extensions are not available for this platform (default is to fall back to a non-SIMD build)" FALSE)
|
|
||||||
boolean_number(REQUIRE_SIMD)
|
|
||||||
option(WITH_12BIT "Encode/decode JPEG images with 12-bit samples (implies WITH_ARITH_DEC=0 WITH_ARITH_ENC=0 WITH_JAVA=0 WITH_SIMD=0 WITH_TURBOJPEG=0 )" FALSE)
|
|
||||||
boolean_number(WITH_12BIT)
|
|
||||||
option(WITH_ARITH_DEC "Include arithmetic decoding support when emulating the libjpeg v6b API/ABI" TRUE)
|
|
||||||
boolean_number(WITH_ARITH_DEC)
|
|
||||||
option(WITH_ARITH_ENC "Include arithmetic encoding support when emulating the libjpeg v6b API/ABI" TRUE)
|
|
||||||
boolean_number(WITH_ARITH_ENC)
|
|
||||||
if(CMAKE_C_COMPILER_ABI MATCHES "ELF X32")
|
|
||||||
set(WITH_JAVA 0)
|
|
||||||
else()
|
|
||||||
option(WITH_JAVA "Build Java wrapper for the TurboJPEG API library (implies ENABLE_SHARED=1)" FALSE)
|
|
||||||
boolean_number(WITH_JAVA)
|
|
||||||
endif()
|
|
||||||
option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE)
|
|
||||||
boolean_number(WITH_JPEG7)
|
|
||||||
option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE)
|
|
||||||
boolean_number(WITH_JPEG8)
|
|
||||||
option(WITH_MEM_SRCDST "Include in-memory source/destination manager functions when emulating the libjpeg v6b or v7 API/ABI" TRUE)
|
|
||||||
boolean_number(WITH_MEM_SRCDST)
|
|
||||||
option(WITH_SIMD "Include SIMD extensions, if available for this platform" FALSE)
|
|
||||||
boolean_number(WITH_SIMD)
|
|
||||||
option(WITH_TURBOJPEG "Include the TurboJPEG API library and associated test programs" FALSE)
|
|
||||||
boolean_number(WITH_TURBOJPEG)
|
|
||||||
option(WITH_FUZZ "Build fuzz targets" FALSE)
|
|
||||||
|
|
||||||
macro(report_option var desc)
|
|
||||||
if(${var})
|
|
||||||
message(STATUS "${desc} enabled (${var} = ${${var}})")
|
|
||||||
else()
|
|
||||||
message(STATUS "${desc} disabled (${var} = ${${var}})")
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
if(WITH_JAVA)
|
|
||||||
set(ENABLE_SHARED 1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Explicitly setting CMAKE_POSITION_INDEPENDENT_CODE=FALSE disables PIC for all
|
|
||||||
# targets, which will cause the shared library builds to fail. Thus, if shared
|
|
||||||
# libraries are enabled and CMAKE_POSITION_INDEPENDENT_CODE is explicitly set
|
|
||||||
# to FALSE, we need to unset it, thus restoring the default behavior
|
|
||||||
# (automatically using PIC for shared library targets.)
|
|
||||||
if(DEFINED CMAKE_POSITION_INDEPENDENT_CODE AND
|
|
||||||
NOT CMAKE_POSITION_INDEPENDENT_CODE AND ENABLE_SHARED)
|
|
||||||
unset(CMAKE_POSITION_INDEPENDENT_CODE CACHE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
report_option(ENABLE_SHARED "Shared libraries")
|
|
||||||
report_option(ENABLE_STATIC "Static libraries")
|
|
||||||
|
|
||||||
if(ENABLE_SHARED)
|
|
||||||
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_JPEG8 OR WITH_JPEG7)
|
|
||||||
set(WITH_ARITH_ENC 1)
|
|
||||||
set(WITH_ARITH_DEC 1)
|
|
||||||
endif()
|
|
||||||
if(WITH_JPEG8)
|
|
||||||
set(WITH_MEM_SRCDST 0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_12BIT)
|
|
||||||
set(WITH_ARITH_DEC 0)
|
|
||||||
set(WITH_ARITH_ENC 0)
|
|
||||||
set(WITH_JAVA 0)
|
|
||||||
set(WITH_SIMD 0)
|
|
||||||
set(WITH_TURBOJPEG 0)
|
|
||||||
set(BITS_IN_JSAMPLE 12)
|
|
||||||
else()
|
|
||||||
set(BITS_IN_JSAMPLE 8)
|
|
||||||
endif()
|
|
||||||
report_option(WITH_12BIT "12-bit JPEG support")
|
|
||||||
|
|
||||||
if(WITH_ARITH_DEC)
|
|
||||||
set(D_ARITH_CODING_SUPPORTED 1)
|
|
||||||
endif()
|
|
||||||
if(NOT WITH_12BIT)
|
|
||||||
report_option(WITH_ARITH_DEC "Arithmetic decoding support")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_ARITH_ENC)
|
|
||||||
set(C_ARITH_CODING_SUPPORTED 1)
|
|
||||||
endif()
|
|
||||||
if(NOT WITH_12BIT)
|
|
||||||
report_option(WITH_ARITH_ENC "Arithmetic encoding support")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT WITH_12BIT)
|
|
||||||
report_option(WITH_TURBOJPEG "TurboJPEG API library")
|
|
||||||
report_option(WITH_JAVA "TurboJPEG Java wrapper")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_MEM_SRCDST)
|
|
||||||
set(MEM_SRCDST_SUPPORTED 1)
|
|
||||||
set(MEM_SRCDST_FUNCTIONS "global: jpeg_mem_dest; jpeg_mem_src;")
|
|
||||||
endif()
|
|
||||||
if(NOT WITH_JPEG8)
|
|
||||||
report_option(WITH_MEM_SRCDST "In-memory source/destination managers")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(SO_AGE 2)
|
|
||||||
if(WITH_MEM_SRCDST)
|
|
||||||
set(SO_AGE 3)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_JPEG8)
|
|
||||||
set(JPEG_LIB_VERSION 80)
|
|
||||||
elseif(WITH_JPEG7)
|
|
||||||
set(JPEG_LIB_VERSION 70)
|
|
||||||
else()
|
|
||||||
set(JPEG_LIB_VERSION 62)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
math(EXPR JPEG_LIB_VERSION_DIV10 "${JPEG_LIB_VERSION} / 10")
|
|
||||||
math(EXPR JPEG_LIB_VERSION_MOD10 "${JPEG_LIB_VERSION} % 10")
|
|
||||||
if(JPEG_LIB_VERSION STREQUAL "62")
|
|
||||||
set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION})
|
|
||||||
else()
|
|
||||||
set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION_DIV10})
|
|
||||||
endif()
|
|
||||||
if(JPEG_LIB_VERSION STREQUAL "80")
|
|
||||||
set(DEFAULT_SO_MINOR_VERSION 2)
|
|
||||||
else()
|
|
||||||
set(DEFAULT_SO_MINOR_VERSION 0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# This causes SO_MAJOR_VERSION/SO_MINOR_VERSION to reset to defaults if
|
|
||||||
# WITH_JPEG7 or WITH_JPEG8 has changed.
|
|
||||||
if((DEFINED WITH_JPEG7_INT AND NOT WITH_JPEG7 EQUAL WITH_JPEG7_INT) OR
|
|
||||||
(DEFINED WITH_JPEG8_INT AND NOT WITH_JPEG8 EQUAL WITH_JPEG8_INT))
|
|
||||||
set(FORCE_SO_VERSION "FORCE")
|
|
||||||
endif()
|
|
||||||
set(WITH_JPEG7_INT ${WITH_JPEG7} CACHE INTERNAL "")
|
|
||||||
set(WITH_JPEG8_INT ${WITH_JPEG8} CACHE INTERNAL "")
|
|
||||||
|
|
||||||
set(SO_MAJOR_VERSION ${DEFAULT_SO_MAJOR_VERSION} CACHE STRING
|
|
||||||
"Major version of the libjpeg API shared library (default: ${DEFAULT_SO_MAJOR_VERSION})"
|
|
||||||
${FORCE_SO_VERSION})
|
|
||||||
set(SO_MINOR_VERSION ${DEFAULT_SO_MINOR_VERSION} CACHE STRING
|
|
||||||
"Minor version of the libjpeg API shared library (default: ${DEFAULT_SO_MINOR_VERSION})"
|
|
||||||
${FORCE_SO_VERSION})
|
|
||||||
|
|
||||||
set(JPEG_LIB_VERSION_DECIMAL "${JPEG_LIB_VERSION_DIV10}.${JPEG_LIB_VERSION_MOD10}")
|
|
||||||
message(STATUS "Emulating libjpeg API/ABI v${JPEG_LIB_VERSION_DECIMAL} (WITH_JPEG7 = ${WITH_JPEG7}, WITH_JPEG8 = ${WITH_JPEG8})")
|
|
||||||
message(STATUS "libjpeg API shared library version = ${SO_MAJOR_VERSION}.${SO_AGE}.${SO_MINOR_VERSION}")
|
|
||||||
|
|
||||||
# Because the TurboJPEG API library uses versioned symbols and changes the
|
|
||||||
# names of functions whenever they are modified in a backward-incompatible
|
|
||||||
# manner, it is always backward-ABI-compatible with itself, so the major and
|
|
||||||
# minor SO versions don't change. However, we increase the middle number (the
|
|
||||||
# SO "age") whenever functions are added to the API.
|
|
||||||
set(TURBOJPEG_SO_MAJOR_VERSION 0)
|
|
||||||
set(TURBOJPEG_SO_AGE 2)
|
|
||||||
set(TURBOJPEG_SO_VERSION 0.${TURBOJPEG_SO_AGE}.0)
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# COMPILER SETTINGS
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
option(WITH_CRT_DLL
|
|
||||||
"Link all ${CMAKE_PROJECT_NAME} libraries and executables with the C run-time DLL (msvcr*.dll) instead of the static C run-time library (libcmt*.lib.) The default is to use the C run-time DLL only with the libraries and executables that need it."
|
|
||||||
FALSE)
|
|
||||||
if(NOT WITH_CRT_DLL)
|
|
||||||
# Use the static C library for all build types
|
|
||||||
foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
|
||||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
|
||||||
if(${var} MATCHES "/MD")
|
|
||||||
string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
add_definitions(-D_CRT_NONSTDC_NO_WARNINGS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|
||||||
# Use the maximum optimization level for release builds
|
|
||||||
foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO)
|
|
||||||
if(${var} MATCHES "-O2")
|
|
||||||
string(REGEX REPLACE "-O2" "-O3" ${var} "${${var}}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES "SunPro")
|
|
||||||
# Use the maximum optimization level for release builds
|
|
||||||
foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO)
|
|
||||||
if(${var} MATCHES "-xO3")
|
|
||||||
string(REGEX REPLACE "-xO3" "-xO5" ${var} "${${var}}")
|
|
||||||
endif()
|
|
||||||
if(${var} MATCHES "-xO2")
|
|
||||||
string(REGEX REPLACE "-xO2" "-xO5" ${var} "${${var}}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UC)
|
|
||||||
|
|
||||||
set(EFFECTIVE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UC}}")
|
|
||||||
message(STATUS "Compiler flags = ${EFFECTIVE_C_FLAGS}")
|
|
||||||
|
|
||||||
set(EFFECTIVE_LD_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE_UC}}")
|
|
||||||
message(STATUS "Linker flags = ${EFFECTIVE_LD_FLAGS}")
|
|
||||||
|
|
||||||
include(CheckCSourceCompiles)
|
|
||||||
include(CheckIncludeFiles)
|
|
||||||
include(CheckTypeSize)
|
|
||||||
|
|
||||||
check_type_size("size_t" SIZE_T)
|
|
||||||
check_type_size("unsigned long" UNSIGNED_LONG)
|
|
||||||
|
|
||||||
if(SIZE_T EQUAL UNSIGNED_LONG)
|
|
||||||
check_c_source_compiles("int main(int argc, char **argv) { unsigned long a = argc; return __builtin_ctzl(a); }"
|
|
||||||
HAVE_BUILTIN_CTZL)
|
|
||||||
endif()
|
|
||||||
if(MSVC)
|
|
||||||
check_include_files("intrin.h" HAVE_INTRIN_H)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
if(CMAKE_CROSSCOMPILING)
|
|
||||||
set(RIGHT_SHIFT_IS_UNSIGNED 0)
|
|
||||||
else()
|
|
||||||
include(CheckCSourceRuns)
|
|
||||||
check_c_source_runs("
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
int is_shifting_signed (long arg) {
|
|
||||||
long res = arg >> 4;
|
|
||||||
if (res == -0x7F7E80CL)
|
|
||||||
return 1; /* right shift is signed */
|
|
||||||
/* see if unsigned-shift hack will fix it. */
|
|
||||||
/* we can't just test exact value since it depends on width of long... */
|
|
||||||
res |= (~0L) << (32-4);
|
|
||||||
if (res == -0x7F7E80CL)
|
|
||||||
return 0; /* right shift is unsigned */
|
|
||||||
printf(\"Right shift isn't acting as I expect it to.\\\\n\");
|
|
||||||
printf(\"I fear the JPEG software will not work at all.\\\\n\\\\n\");
|
|
||||||
return 0; /* try it with unsigned anyway */
|
|
||||||
}
|
|
||||||
int main (void) {
|
|
||||||
exit(is_shifting_signed(-0x7F7E80B1L));
|
|
||||||
}" RIGHT_SHIFT_IS_UNSIGNED)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set(INLINE_OPTIONS "__inline;inline")
|
|
||||||
else()
|
|
||||||
set(INLINE_OPTIONS "__inline__;inline")
|
|
||||||
endif()
|
|
||||||
option(FORCE_INLINE "Force function inlining" TRUE)
|
|
||||||
boolean_number(FORCE_INLINE)
|
|
||||||
if(FORCE_INLINE)
|
|
||||||
if(MSVC)
|
|
||||||
list(INSERT INLINE_OPTIONS 0 "__forceinline")
|
|
||||||
else()
|
|
||||||
list(INSERT INLINE_OPTIONS 0 "inline __attribute__((always_inline))")
|
|
||||||
list(INSERT INLINE_OPTIONS 0 "__inline__ __attribute__((always_inline))")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
foreach(inline ${INLINE_OPTIONS})
|
|
||||||
check_c_source_compiles("${inline} static int foo(void) { return 0; } int main(void) { return foo(); }"
|
|
||||||
INLINE_WORKS)
|
|
||||||
if(INLINE_WORKS)
|
|
||||||
set(INLINE ${inline})
|
|
||||||
break()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
if(NOT INLINE_WORKS)
|
|
||||||
message(FATAL_ERROR "Could not determine how to inline functions.")
|
|
||||||
endif()
|
|
||||||
message(STATUS "INLINE = ${INLINE} (FORCE_INLINE = ${FORCE_INLINE})")
|
|
||||||
|
|
||||||
if(WITH_TURBOJPEG)
|
|
||||||
if(MSVC)
|
|
||||||
set(THREAD_LOCAL "__declspec(thread)")
|
|
||||||
else()
|
|
||||||
set(THREAD_LOCAL "__thread")
|
|
||||||
endif()
|
|
||||||
check_c_source_compiles("${THREAD_LOCAL} int i; int main(void) { i = 0; return i; }" HAVE_THREAD_LOCAL)
|
|
||||||
if(HAVE_THREAD_LOCAL)
|
|
||||||
message(STATUS "THREAD_LOCAL = ${THREAD_LOCAL}")
|
|
||||||
else()
|
|
||||||
message(WARNING "Thread-local storage is not available. The TurboJPEG API library's global error handler will not be thread-safe.")
|
|
||||||
unset(THREAD_LOCAL)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map "VERS_1 { global: *; };")
|
|
||||||
set(CMAKE_REQUIRED_FLAGS
|
|
||||||
"-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/conftest.map")
|
|
||||||
check_c_source_compiles("int main(void) { return 0; }" HAVE_VERSION_SCRIPT)
|
|
||||||
set(CMAKE_REQUIRED_FLAGS)
|
|
||||||
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map)
|
|
||||||
if(HAVE_VERSION_SCRIPT)
|
|
||||||
message(STATUS "Linker supports GNU-style version scripts")
|
|
||||||
set(MAPFLAG "-Wl,--version-script,")
|
|
||||||
set(TJMAPFLAG "-Wl,--version-script,")
|
|
||||||
else()
|
|
||||||
message(STATUS "Linker does not support GNU-style version scripts")
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
|
||||||
# The Solaris linker doesn't like our version script for the libjpeg API
|
|
||||||
# library, but the version script for the TurboJPEG API library should
|
|
||||||
# still work.
|
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map
|
|
||||||
"VERS_1 { global: foo; local: *; }; VERS_2 { global: foo2; } VERS_1;")
|
|
||||||
set(CMAKE_REQUIRED_FLAGS "-Wl,-M,${CMAKE_CURRENT_BINARY_DIR}/conftest.map -shared")
|
|
||||||
check_c_source_compiles("int foo() { return 0; } int foo2() { return 2; }"
|
|
||||||
HAVE_MAPFILE)
|
|
||||||
set(CMAKE_REQUIRED_FLAGS)
|
|
||||||
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map)
|
|
||||||
if(HAVE_MAPFILE)
|
|
||||||
message(STATUS "Linker supports mapfiles")
|
|
||||||
set(TJMAPFLAG "-Wl,-M,")
|
|
||||||
else()
|
|
||||||
message(STATUS "Linker does not support mapfiles")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Generate files
|
|
||||||
if(WIN32)
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win/jconfig.h.in jconfig.h)
|
|
||||||
else()
|
|
||||||
configure_file(jconfig.h.in jconfig.h)
|
|
||||||
endif()
|
|
||||||
configure_file(jconfigint.h.in jconfigint.h)
|
|
||||||
configure_file(jversion.h.in jversion.h)
|
|
||||||
if(UNIX)
|
|
||||||
configure_file(libjpeg.map.in libjpeg.map)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Include directories and compiler definitions
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# TARGETS
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
if(CMAKE_EXECUTABLE_SUFFIX_TMP)
|
|
||||||
set(CMAKE_EXECUTABLE_SUFFIX ${CMAKE_EXECUTABLE_SUFFIX_TMP})
|
|
||||||
endif()
|
|
||||||
message(STATUS "CMAKE_EXECUTABLE_SUFFIX = ${CMAKE_EXECUTABLE_SUFFIX}")
|
|
||||||
|
|
||||||
set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
|
|
||||||
jcicc.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c
|
|
||||||
jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c
|
|
||||||
jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdicc.c jdinput.c
|
|
||||||
jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c
|
|
||||||
jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c
|
|
||||||
jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
|
|
||||||
|
|
||||||
if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
|
|
||||||
set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_ARITH_ENC)
|
|
||||||
set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_ARITH_DEC)
|
|
||||||
set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_SIMD)
|
|
||||||
add_subdirectory(simd)
|
|
||||||
if(NEON_INTRINSICS)
|
|
||||||
add_definitions(-DNEON_INTRINSICS)
|
|
||||||
endif()
|
|
||||||
elseif(NOT WITH_12BIT)
|
|
||||||
message(STATUS "SIMD extensions: None (WITH_SIMD = ${WITH_SIMD})")
|
|
||||||
endif()
|
|
||||||
if(WITH_SIMD)
|
|
||||||
message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})")
|
|
||||||
if(MSVC_IDE OR XCODE)
|
|
||||||
set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
add_library(simd OBJECT jsimd_none.c)
|
|
||||||
if(NOT WIN32 AND (CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED))
|
|
||||||
set_target_properties(simd PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_JAVA)
|
|
||||||
add_subdirectory(java)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_SHARED)
|
|
||||||
add_subdirectory(sharedlib)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_STATIC)
|
|
||||||
add_library(jpeg-static STATIC ${JPEG_SOURCES} $<TARGET_OBJECTS:simd>
|
|
||||||
${SIMD_OBJS})
|
|
||||||
if(NOT MSVC)
|
|
||||||
set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_TURBOJPEG)
|
|
||||||
if(ENABLE_SHARED)
|
|
||||||
set(TURBOJPEG_SOURCES ${JPEG_SOURCES} $<TARGET_OBJECTS:simd> ${SIMD_OBJS}
|
|
||||||
turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c rdppm.c
|
|
||||||
wrbmp.c wrppm.c)
|
|
||||||
set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile)
|
|
||||||
if(WITH_JAVA)
|
|
||||||
set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
|
|
||||||
include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
|
|
||||||
set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni)
|
|
||||||
endif()
|
|
||||||
if(MSVC)
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/win/turbojpeg.rc.in
|
|
||||||
${CMAKE_BINARY_DIR}/win/turbojpeg.rc)
|
|
||||||
set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES}
|
|
||||||
${CMAKE_BINARY_DIR}/win/turbojpeg.rc)
|
|
||||||
endif()
|
|
||||||
add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
|
|
||||||
set_property(TARGET turbojpeg PROPERTY COMPILE_FLAGS
|
|
||||||
"-DBMP_SUPPORTED -DPPM_SUPPORTED")
|
|
||||||
if(WIN32)
|
|
||||||
set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
|
|
||||||
endif()
|
|
||||||
if(MINGW)
|
|
||||||
set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
|
|
||||||
endif()
|
|
||||||
if(APPLE AND (NOT CMAKE_OSX_DEPLOYMENT_TARGET OR
|
|
||||||
CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER 10.4))
|
|
||||||
if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
|
|
||||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
|
|
||||||
endif()
|
|
||||||
set_target_properties(turbojpeg PROPERTIES MACOSX_RPATH 1)
|
|
||||||
endif()
|
|
||||||
set_target_properties(turbojpeg PROPERTIES
|
|
||||||
SOVERSION ${TURBOJPEG_SO_MAJOR_VERSION} VERSION ${TURBOJPEG_SO_VERSION})
|
|
||||||
if(TJMAPFLAG)
|
|
||||||
set_target_properties(turbojpeg PROPERTIES
|
|
||||||
LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_STATIC)
|
|
||||||
add_library(turbojpeg-static STATIC ${JPEG_SOURCES} $<TARGET_OBJECTS:simd>
|
|
||||||
${SIMD_OBJS} turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c
|
|
||||||
rdppm.c wrbmp.c wrppm.c)
|
|
||||||
set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS
|
|
||||||
"-DBMP_SUPPORTED -DPPM_SUPPORTED")
|
|
||||||
if(NOT MSVC)
|
|
||||||
set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(USE_SETMODE "-DUSE_SETMODE")
|
|
||||||
endif()
|
|
||||||
if(WITH_12BIT)
|
|
||||||
set(COMPILE_FLAGS "-DGIF_SUPPORTED -DPPM_SUPPORTED ${USE_SETMODE}")
|
|
||||||
else()
|
|
||||||
set(COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}")
|
|
||||||
set(CJPEG_BMP_SOURCES rdbmp.c rdtarga.c)
|
|
||||||
set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c)
|
|
||||||
endif()
|
|
||||||
@ -1,741 +0,0 @@
|
|||||||
# CMakeLists.txt
|
|
||||||
|
|
||||||
# Copyright (C) 2018 Cosmin Truta
|
|
||||||
# Copyright (C) 2007,2009-2018 Glenn Randers-Pehrson
|
|
||||||
# Written by Christian Ehrlicher, 2007
|
|
||||||
# Revised by Roger Lowman, 2009-2010
|
|
||||||
# Revised by Clifford Yapp, 2011-2012,2017
|
|
||||||
# Revised by Roger Leigh, 2016
|
|
||||||
# Revised by Andreas Franek, 2016
|
|
||||||
# Revised by Sam Serrels, 2017
|
|
||||||
# Revised by Vadim Barkov, 2017
|
|
||||||
# Revised by Vicky Pfau, 2018
|
|
||||||
# Revised by Cameron Cawley, 2018
|
|
||||||
# Revised by Cosmin Truta, 2018
|
|
||||||
# Revised by Kyle Bentley, 2018
|
|
||||||
|
|
||||||
# This code is released under the libpng license.
|
|
||||||
# For conditions of distribution and use, see the disclaimer
|
|
||||||
# and license in png.h
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.10)
|
|
||||||
cmake_policy(VERSION 3.1)
|
|
||||||
# When using CMake 3.4 and later, don't export symbols from executables unless
|
|
||||||
# the CMAKE_ENABLE_EXPORTS variable is set.
|
|
||||||
if(POLICY CMP0065)
|
|
||||||
cmake_policy(SET CMP0065 NEW)
|
|
||||||
endif()
|
|
||||||
if (POLICY CMP0077)
|
|
||||||
cmake_policy(SET CMP0077 NEW)
|
|
||||||
endif()
|
|
||||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
|
|
||||||
|
|
||||||
project(libpng C ASM)
|
|
||||||
enable_testing()
|
|
||||||
|
|
||||||
set(PNGLIB_MAJOR 1)
|
|
||||||
set(PNGLIB_MINOR 6)
|
|
||||||
set(PNGLIB_RELEASE 37)
|
|
||||||
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
|
||||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
# needed packages
|
|
||||||
|
|
||||||
# Allow users to specify location of Zlib.
|
|
||||||
# Useful if zlib is being built alongside this as a sub-project.
|
|
||||||
option(PNG_BUILD_ZLIB "Custom zlib Location, else find_package is used" ON)
|
|
||||||
|
|
||||||
if(NOT PNG_BUILD_ZLIB)
|
|
||||||
find_package(ZLIB REQUIRED)
|
|
||||||
include_directories(${ZLIB_INCLUDE_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
|
|
||||||
find_library(M_LIBRARY m)
|
|
||||||
else()
|
|
||||||
# libm is not needed and/or not available
|
|
||||||
set(M_LIBRARY "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# COMMAND LINE OPTIONS
|
|
||||||
option(PNG_SHARED "Build shared lib" OFF)
|
|
||||||
option(PNG_STATIC "Build static lib" ON)
|
|
||||||
option(PNG_TESTS "Build libpng tests" OFF)
|
|
||||||
|
|
||||||
# Many more configuration options could be added here
|
|
||||||
option(PNG_FRAMEWORK "Build OS X framework" OFF)
|
|
||||||
option(PNG_DEBUG "Build with debug output" OFF)
|
|
||||||
option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" OFF)
|
|
||||||
|
|
||||||
set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
|
|
||||||
set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
|
|
||||||
|
|
||||||
if(PNG_HARDWARE_OPTIMIZATIONS)
|
|
||||||
|
|
||||||
# set definitions and sources for arm
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
|
||||||
set(PNG_ARM_NEON_POSSIBLE_VALUES check on off)
|
|
||||||
set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations:
|
|
||||||
check: (default) use internal checking code;
|
|
||||||
off: disable the optimizations;
|
|
||||||
on: turn on unconditionally.")
|
|
||||||
set_property(CACHE PNG_ARM_NEON PROPERTY STRINGS
|
|
||||||
${PNG_ARM_NEON_POSSIBLE_VALUES})
|
|
||||||
list(FIND PNG_ARM_NEON_POSSIBLE_VALUES ${PNG_ARM_NEON} index)
|
|
||||||
if(index EQUAL -1)
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]")
|
|
||||||
elseif(NOT ${PNG_ARM_NEON} STREQUAL "off")
|
|
||||||
set(libpng_arm_sources
|
|
||||||
arm/arm_init.c
|
|
||||||
arm/filter_neon.S
|
|
||||||
arm/filter_neon_intrinsics.c
|
|
||||||
arm/palette_neon_intrinsics.c)
|
|
||||||
|
|
||||||
if(${PNG_ARM_NEON} STREQUAL "on")
|
|
||||||
add_definitions(-DPNG_ARM_NEON_OPT=2)
|
|
||||||
elseif(${PNG_ARM_NEON} STREQUAL "check")
|
|
||||||
add_definitions(-DPNG_ARM_NEON_CHECK_SUPPORTED)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
add_definitions(-DPNG_ARM_NEON_OPT=0)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for powerpc
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
|
|
||||||
set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
|
|
||||||
set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations:
|
|
||||||
off: disable the optimizations.")
|
|
||||||
set_property(CACHE PNG_POWERPC_VSX PROPERTY STRINGS
|
|
||||||
${PNG_POWERPC_VSX_POSSIBLE_VALUES})
|
|
||||||
list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index)
|
|
||||||
if(index EQUAL -1)
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]")
|
|
||||||
elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "off")
|
|
||||||
set(libpng_powerpc_sources
|
|
||||||
powerpc/powerpc_init.c
|
|
||||||
powerpc/filter_vsx_intrinsics.c)
|
|
||||||
if(${PNG_POWERPC_VSX} STREQUAL "on")
|
|
||||||
add_definitions(-DPNG_POWERPC_VSX_OPT=2)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
add_definitions(-DPNG_POWERPC_VSX_OPT=0)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for intel
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
|
|
||||||
set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
|
|
||||||
set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations:
|
|
||||||
off: disable the optimizations")
|
|
||||||
set_property(CACHE PNG_INTEL_SSE PROPERTY STRINGS
|
|
||||||
${PNG_INTEL_SSE_POSSIBLE_VALUES})
|
|
||||||
list(FIND PNG_INTEL_SSE_POSSIBLE_VALUES ${PNG_INTEL_SSE} index)
|
|
||||||
if(index EQUAL -1)
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]")
|
|
||||||
elseif(NOT ${PNG_INTEL_SSE} STREQUAL "off")
|
|
||||||
set(libpng_intel_sources
|
|
||||||
intel/intel_init.c
|
|
||||||
intel/filter_sse2_intrinsics.c)
|
|
||||||
if(${PNG_INTEL_SSE} STREQUAL "on")
|
|
||||||
add_definitions(-DPNG_INTEL_SSE_OPT=1)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
add_definitions(-DPNG_INTEL_SSE_OPT=0)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for MIPS
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
|
|
||||||
set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
|
|
||||||
set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations:
|
|
||||||
off: disable the optimizations")
|
|
||||||
set_property(CACHE PNG_MIPS_MSA PROPERTY STRINGS
|
|
||||||
${PNG_MIPS_MSA_POSSIBLE_VALUES})
|
|
||||||
list(FIND PNG_MIPS_MSA_POSSIBLE_VALUES ${PNG_MIPS_MSA} index)
|
|
||||||
if(index EQUAL -1)
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]")
|
|
||||||
elseif(NOT ${PNG_MIPS_MSA} STREQUAL "off")
|
|
||||||
set(libpng_mips_sources
|
|
||||||
mips/mips_init.c
|
|
||||||
mips/filter_msa_intrinsics.c)
|
|
||||||
if(${PNG_MIPS_MSA} STREQUAL "on")
|
|
||||||
add_definitions(-DPNG_MIPS_MSA_OPT=2)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
add_definitions(-DPNG_MIPS_MSA_OPT=0)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
else(PNG_HARDWARE_OPTIMIZATIONS)
|
|
||||||
|
|
||||||
# set definitions and sources for arm
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
|
||||||
add_definitions(-DPNG_ARM_NEON_OPT=0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for powerpc
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*")
|
|
||||||
add_definitions(-DPNG_POWERPC_VSX_OPT=0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for intel
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*")
|
|
||||||
add_definitions(-DPNG_INTEL_SSE_OPT=0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# set definitions and sources for MIPS
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
|
|
||||||
CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*")
|
|
||||||
add_definitions(-DPNG_MIPS_MSA_OPT=0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endif(PNG_HARDWARE_OPTIMIZATIONS)
|
|
||||||
|
|
||||||
# SET LIBNAME
|
|
||||||
set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
|
||||||
|
|
||||||
# to distinguish between debug and release lib
|
|
||||||
set(CMAKE_DEBUG_POSTFIX "d")
|
|
||||||
|
|
||||||
include(CheckCSourceCompiles)
|
|
||||||
option(ld-version-script "Enable linker version script" ON)
|
|
||||||
if(ld-version-script AND NOT APPLE)
|
|
||||||
# Check if LD supports linker scripts.
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "VERS_1 {
|
|
||||||
global: sym;
|
|
||||||
local: *;
|
|
||||||
};
|
|
||||||
|
|
||||||
VERS_2 {
|
|
||||||
global: sym2;
|
|
||||||
main;
|
|
||||||
} VERS_1;
|
|
||||||
")
|
|
||||||
set(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS})
|
|
||||||
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} "-Wl,--version-script='${CMAKE_CURRENT_BINARY_DIR}/conftest.map'")
|
|
||||||
check_c_source_compiles("void sym(void) {}
|
|
||||||
void sym2(void) {}
|
|
||||||
int main(void) {return 0;}
|
|
||||||
" HAVE_LD_VERSION_SCRIPT)
|
|
||||||
if(NOT HAVE_LD_VERSION_SCRIPT)
|
|
||||||
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE} "-Wl,-M -Wl,${CMAKE_CURRENT_BINARY_DIR}/conftest.map")
|
|
||||||
check_c_source_compiles("void sym(void) {}
|
|
||||||
void sym2(void) {}
|
|
||||||
int main(void) {return 0;}
|
|
||||||
" HAVE_SOLARIS_LD_VERSION_SCRIPT)
|
|
||||||
endif()
|
|
||||||
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE})
|
|
||||||
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Find symbol prefix. Likely obsolete and unnecessary with recent
|
|
||||||
# toolchains (it's not done in many other projects).
|
|
||||||
function(symbol_prefix)
|
|
||||||
set(SYMBOL_PREFIX)
|
|
||||||
|
|
||||||
execute_process(COMMAND "${CMAKE_C_COMPILER}" "-E" "-"
|
|
||||||
INPUT_FILE /dev/null
|
|
||||||
OUTPUT_VARIABLE OUT
|
|
||||||
RESULT_VARIABLE STATUS)
|
|
||||||
|
|
||||||
if(CPP_FAIL)
|
|
||||||
message(WARNING "Failed to run the C preprocessor")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
string(REPLACE "\n" ";" OUT "${OUT}")
|
|
||||||
foreach(line ${OUT})
|
|
||||||
string(REGEX MATCH "^PREFIX=" found_match "${line}")
|
|
||||||
if(found_match)
|
|
||||||
string(REGEX REPLACE "^PREFIX=(.*\)" "\\1" prefix "${line}")
|
|
||||||
string(REGEX MATCH "__USER_LABEL_PREFIX__" found_match "${prefix}")
|
|
||||||
if(found_match)
|
|
||||||
string(REGEX REPLACE "(.*)__USER_LABEL_PREFIX__(.*)" "\\1\\2" prefix "${prefix}")
|
|
||||||
endif()
|
|
||||||
set(SYMBOL_PREFIX "${prefix}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
message(STATUS "Symbol prefix: ${SYMBOL_PREFIX}")
|
|
||||||
set(SYMBOL_PREFIX "${SYMBOL_PREFIX}" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
symbol_prefix()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_program(AWK NAMES gawk awk)
|
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|
||||||
|
|
||||||
if(NOT AWK OR ANDROID)
|
|
||||||
# No awk available to generate sources; use pre-built pnglibconf.h
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
|
|
||||||
add_custom_target(genfiles) # Dummy
|
|
||||||
else()
|
|
||||||
include(CMakeParseArguments)
|
|
||||||
# Generate .chk from .out with awk
|
|
||||||
# generate_chk(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]])
|
|
||||||
function(generate_chk)
|
|
||||||
set(options)
|
|
||||||
set(oneValueArgs INPUT OUTPUT)
|
|
||||||
set(multiValueArgs DEPENDS)
|
|
||||||
cmake_parse_arguments(_GC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
||||||
if(NOT _GC_INPUT)
|
|
||||||
message(FATAL_ERROR "generate_chk: Missing INPUT argument")
|
|
||||||
endif()
|
|
||||||
if(NOT _GC_OUTPUT)
|
|
||||||
message(FATAL_ERROR "generate_chk: Missing OUTPUT argument")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${_GC_OUTPUT}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
|
||||||
"-DINPUT=${_GC_INPUT}"
|
|
||||||
"-DOUTPUT=${_GC_OUTPUT}"
|
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake"
|
|
||||||
DEPENDS "${_GC_INPUT}" ${_GC_DEPENDS}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Generate .out from .c with awk
|
|
||||||
# generate_out(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]])
|
|
||||||
function(generate_out)
|
|
||||||
set(options)
|
|
||||||
set(oneValueArgs INPUT OUTPUT)
|
|
||||||
set(multiValueArgs DEPENDS)
|
|
||||||
cmake_parse_arguments(_GO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
||||||
if(NOT _GO_INPUT)
|
|
||||||
message(FATAL_ERROR "generate_out: Missing INPUT argument")
|
|
||||||
endif()
|
|
||||||
if(NOT _GO_OUTPUT)
|
|
||||||
message(FATAL_ERROR "generate_out: Missing OUTPUT argument")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${_GO_OUTPUT}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
|
||||||
"-DINPUT=${_GO_INPUT}"
|
|
||||||
"-DOUTPUT=${_GO_OUTPUT}"
|
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake"
|
|
||||||
DEPENDS "${_GO_INPUT}" ${_GO_DEPENDS}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Generate specific source file with awk
|
|
||||||
# generate_source(OUTPUT outputfile [DEPENDS dep1 [dep2...]])
|
|
||||||
function(generate_source)
|
|
||||||
set(options)
|
|
||||||
set(oneValueArgs OUTPUT)
|
|
||||||
set(multiValueArgs DEPENDS)
|
|
||||||
cmake_parse_arguments(_GSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
||||||
if(NOT _GSO_OUTPUT)
|
|
||||||
message(FATAL_ERROR "generate_source: Missing OUTPUT argument")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
|
||||||
"-DOUTPUT=${_GSO_OUTPUT}"
|
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake"
|
|
||||||
DEPENDS ${_GSO_DEPENDS}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Copy file
|
|
||||||
function(generate_copy source destination)
|
|
||||||
add_custom_command(OUTPUT "${destination}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E remove "${destination}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy "${source}"
|
|
||||||
"${destination}"
|
|
||||||
DEPENDS "${source}")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Generate scripts/pnglibconf.h
|
|
||||||
generate_source(OUTPUT "scripts/pnglibconf.c"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h")
|
|
||||||
|
|
||||||
# Generate pnglibconf.c
|
|
||||||
generate_source(OUTPUT "pnglibconf.c"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h")
|
|
||||||
|
|
||||||
if(PNG_PREFIX)
|
|
||||||
set(PNGLIBCONF_H_EXTRA_DEPENDS
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/macro.lst")
|
|
||||||
set(PNGPREFIX_H_EXTRA_DEPENDS
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out")
|
|
||||||
|
|
||||||
# Generate pnglibconf.h
|
|
||||||
generate_source(OUTPUT "pnglibconf.h"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
|
||||||
${PNGLIBCONF_H_EXTRA_DEPENDS})
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/intprefix.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/prefix.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out")
|
|
||||||
|
|
||||||
# Generate pngprefix.h
|
|
||||||
generate_source(OUTPUT "pngprefix.h"
|
|
||||||
DEPENDS ${PNGPREFIX_H_EXTRA_DEPENDS})
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/sym.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt")
|
|
||||||
|
|
||||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/vers.c"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
|
||||||
|
|
||||||
generate_chk(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
|
||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk"
|
|
||||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.def")
|
|
||||||
|
|
||||||
add_custom_target(symbol-check DEPENDS
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk")
|
|
||||||
|
|
||||||
generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
|
|
||||||
generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
|
|
||||||
|
|
||||||
add_custom_target(genvers DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
|
|
||||||
add_custom_target(gensym DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
|
|
||||||
|
|
||||||
add_custom_target("genprebuilt"
|
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
|
||||||
"-DOUTPUT=scripts/pnglibconf.h.prebuilt"
|
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake"
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
|
|
||||||
# A single target handles generation of all generated files. If
|
|
||||||
# they are depended upon separately by multiple targets, this
|
|
||||||
# confuses parallel make (it would require a separate top-level
|
|
||||||
# target for each file to track the dependencies properly).
|
|
||||||
add_custom_target(genfiles DEPENDS
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng.sym"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng.vers"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out")
|
|
||||||
endif(NOT AWK OR ANDROID)
|
|
||||||
|
|
||||||
# OUR SOURCES
|
|
||||||
set(libpng_public_hdrs
|
|
||||||
png.h
|
|
||||||
pngconf.h
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
|
||||||
)
|
|
||||||
set(libpng_private_hdrs
|
|
||||||
pngpriv.h
|
|
||||||
pngdebug.h
|
|
||||||
pnginfo.h
|
|
||||||
pngstruct.h
|
|
||||||
)
|
|
||||||
if(AWK AND NOT ANDROID)
|
|
||||||
list(APPEND libpng_private_hdrs "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h")
|
|
||||||
endif()
|
|
||||||
set(libpng_sources
|
|
||||||
${libpng_public_hdrs}
|
|
||||||
${libpng_private_hdrs}
|
|
||||||
png.c
|
|
||||||
pngerror.c
|
|
||||||
pngget.c
|
|
||||||
pngmem.c
|
|
||||||
pngpread.c
|
|
||||||
pngread.c
|
|
||||||
pngrio.c
|
|
||||||
pngrtran.c
|
|
||||||
pngrutil.c
|
|
||||||
pngset.c
|
|
||||||
pngtrans.c
|
|
||||||
pngwio.c
|
|
||||||
pngwrite.c
|
|
||||||
pngwtran.c
|
|
||||||
pngwutil.c
|
|
||||||
${libpng_arm_sources}
|
|
||||||
${libpng_intel_sources}
|
|
||||||
${libpng_mips_sources}
|
|
||||||
${libpng_powerpc_sources}
|
|
||||||
)
|
|
||||||
set(pngtest_sources
|
|
||||||
pngtest.c
|
|
||||||
)
|
|
||||||
set(pngvalid_sources
|
|
||||||
contrib/libtests/pngvalid.c
|
|
||||||
)
|
|
||||||
set(pngstest_sources
|
|
||||||
contrib/libtests/pngstest.c
|
|
||||||
)
|
|
||||||
set(pngunknown_sources
|
|
||||||
contrib/libtests/pngunknown.c
|
|
||||||
)
|
|
||||||
set(pngimage_sources
|
|
||||||
contrib/libtests/pngimage.c
|
|
||||||
)
|
|
||||||
set(pngfix_sources
|
|
||||||
contrib/tools/pngfix.c
|
|
||||||
)
|
|
||||||
set(png_fix_itxt_sources
|
|
||||||
contrib/tools/png-fix-itxt.c
|
|
||||||
)
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(PNG_DEBUG)
|
|
||||||
add_definitions(-DPNG_DEBUG)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# NOW BUILD OUR TARGET
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
|
|
||||||
|
|
||||||
unset(PNG_LIB_TARGETS)
|
|
||||||
|
|
||||||
if(PNG_STATIC)
|
|
||||||
# does not work without changing name
|
|
||||||
set(PNG_LIB_NAME_STATIC png_static)
|
|
||||||
add_library(png_static STATIC ${libpng_sources})
|
|
||||||
add_dependencies(png_static genfiles)
|
|
||||||
# MSVC doesn't use a different file extension for shared vs. static
|
|
||||||
# libs. We are able to change OUTPUT_NAME to remove the _static
|
|
||||||
# for all other platforms.
|
|
||||||
if(NOT MSVC)
|
|
||||||
set_target_properties(png_static PROPERTIES
|
|
||||||
OUTPUT_NAME "${PNG_LIB_NAME}"
|
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
|
||||||
else()
|
|
||||||
set_target_properties(png_static PROPERTIES
|
|
||||||
OUTPUT_NAME "${PNG_LIB_NAME}_static"
|
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
|
||||||
endif()
|
|
||||||
list(APPEND PNG_LIB_TARGETS png_static)
|
|
||||||
if(MSVC)
|
|
||||||
# msvc does not append 'lib' - do it here to have consistent name
|
|
||||||
set_target_properties(png_static PROPERTIES PREFIX "lib")
|
|
||||||
endif()
|
|
||||||
target_link_libraries(png_static ${M_LIBRARY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT PNG_LIB_TARGETS)
|
|
||||||
message(SEND_ERROR
|
|
||||||
"No library variant selected to build. "
|
|
||||||
"Please enable at least one of the following options: "
|
|
||||||
"PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Set a variable with CMake code which:
|
|
||||||
# Creates a symlink from src to dest (if possible) or alternatively
|
|
||||||
# copies if different.
|
|
||||||
include(CMakeParseArguments)
|
|
||||||
|
|
||||||
function(create_symlink DEST_FILE)
|
|
||||||
|
|
||||||
cmake_parse_arguments(S "" "FILE;TARGET" "" ${ARGN})
|
|
||||||
|
|
||||||
if(NOT S_TARGET AND NOT S_FILE)
|
|
||||||
message(FATAL_ERROR "create_symlink: Missing TARGET or FILE argument")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(S_TARGET AND S_FILE)
|
|
||||||
message(FATAL_ERROR "create_symlink: Both source file ${S_FILE} and build target ${S_TARGET} arguments are present; can only have one.")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(S_FILE)
|
|
||||||
# If we don't need to symlink something that's coming from a build target,
|
|
||||||
# we can go ahead and symlink/copy at configure time.
|
|
||||||
if(CMAKE_HOST_WIN32 AND NOT CYGWIN)
|
|
||||||
execute_process(
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
else()
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(S_TARGET)
|
|
||||||
# We need to use generator expressions, which can be a bit tricky, so for
|
|
||||||
# simplicity make the symlink a POST_BUILD step and use the TARGET
|
|
||||||
# signature of add_custom_command.
|
|
||||||
if(CMAKE_HOST_WIN32 AND NOT CYGWIN)
|
|
||||||
add_custom_command(TARGET ${S_TARGET} POST_BUILD
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE})
|
|
||||||
else()
|
|
||||||
add_custom_command(TARGET ${S_TARGET} POST_BUILD
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E create_symlink $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Create source generation scripts.
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genchk.cmake.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake @ONLY)
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genout.cmake.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake @ONLY)
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gensrc.cmake.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake @ONLY)
|
|
||||||
|
|
||||||
# libpng is a library so default to 'lib'
|
|
||||||
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
|
||||||
set(CMAKE_INSTALL_LIBDIR lib)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# CREATE PKGCONFIG FILES
|
|
||||||
# We use the same files like ./configure, so we have to set its vars.
|
|
||||||
# Only do this on Windows for Cygwin - the files don't make much sense outside
|
|
||||||
# of a UNIX look-alike.
|
|
||||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
|
||||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
|
||||||
set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
|
||||||
set(LIBS "-lz -lm")
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
|
|
||||||
create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc)
|
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
|
|
||||||
create_symlink(libpng-config FILE ${PNGLIB_NAME}-config)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# SET UP LINKS
|
|
||||||
if(PNG_SHARED)
|
|
||||||
set_target_properties(png PROPERTIES
|
|
||||||
# VERSION 16.${PNGLIB_RELEASE}.1.6.37
|
|
||||||
VERSION 16.${PNGLIB_RELEASE}.0
|
|
||||||
SOVERSION 16
|
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# INSTALL
|
|
||||||
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
|
||||||
install(TARGETS ${PNG_LIB_TARGETS}
|
|
||||||
EXPORT libpng
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
|
|
||||||
if(PNG_SHARED)
|
|
||||||
# Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin
|
|
||||||
if(CYGWIN OR MINGW)
|
|
||||||
create_symlink(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png)
|
|
||||||
install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT WIN32)
|
|
||||||
create_symlink(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png)
|
|
||||||
install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(PNG_STATIC)
|
|
||||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
|
||||||
create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static)
|
|
||||||
install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
|
|
||||||
install(FILES ${libpng_public_hdrs} DESTINATION include)
|
|
||||||
install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME})
|
|
||||||
endif()
|
|
||||||
if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL)
|
|
||||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
|
||||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin)
|
|
||||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL)
|
|
||||||
install(TARGETS ${PNG_BIN_TARGETS}
|
|
||||||
RUNTIME DESTINATION bin)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL)
|
|
||||||
# Install man pages
|
|
||||||
if(NOT PNG_MAN_DIR)
|
|
||||||
set(PNG_MAN_DIR "share/man")
|
|
||||||
endif()
|
|
||||||
install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3)
|
|
||||||
install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5)
|
|
||||||
# Install pkg-config files
|
|
||||||
if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW)
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
|
|
||||||
DESTINATION bin)
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
|
|
||||||
DESTINATION bin)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Create an export file that CMake users can include() to import our targets.
|
|
||||||
if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL)
|
|
||||||
install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# what's with libpng-manual.txt and all the extra files?
|
|
||||||
|
|
||||||
# UNINSTALL
|
|
||||||
# do we need this?
|
|
||||||
|
|
||||||
# DIST
|
|
||||||
# do we need this?
|
|
||||||
|
|
||||||
# to create msvc import lib for mingw compiled shared lib
|
|
||||||
# pexports libpng.dll > libpng.def
|
|
||||||
# lib /def:libpng.def /machine:x86
|
|
||||||
@ -192,6 +192,7 @@ option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
|||||||
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
|
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
|
||||||
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
|
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
|
||||||
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
|
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
|
||||||
|
option(BUILD_LAMMPS_GUI "Build and install the LAMMPS GUI" OFF)
|
||||||
|
|
||||||
# Support using clang-tidy for C++ files with selected options
|
# Support using clang-tidy for C++ files with selected options
|
||||||
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
|
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
|
||||||
@ -790,9 +791,11 @@ include(Tools)
|
|||||||
include(Documentation)
|
include(Documentation)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Install potential and force field files in data directory
|
# Install bench, potential and force field files in data directory
|
||||||
###############################################################################
|
###############################################################################
|
||||||
set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps)
|
set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/lammps)
|
||||||
|
|
||||||
|
install(DIRECTORY ${LAMMPS_DIR}/bench DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||||
install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||||
if(BUILD_TOOLS)
|
if(BUILD_TOOLS)
|
||||||
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||||
|
|||||||
@ -1,195 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
|
||||||
# When using CMake 3.4 and later, don't export symbols from executables unless
|
|
||||||
# the CMAKE_ENABLE_EXPORTS variable is set.
|
|
||||||
if(POLICY CMP0065)
|
|
||||||
cmake_policy(SET CMP0065 NEW)
|
|
||||||
endif()
|
|
||||||
if (POLICY CMP0077)
|
|
||||||
cmake_policy(SET CMP0077 NEW)
|
|
||||||
endif()
|
|
||||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
|
|
||||||
|
|
||||||
project(zlib C)
|
|
||||||
|
|
||||||
set(VERSION "1.2.11")
|
|
||||||
|
|
||||||
option(ASM686 "Enable building i686 assembly implementation" OFF)
|
|
||||||
option(AMD64 "Enable building amd64 assembly implementation" OFF)
|
|
||||||
|
|
||||||
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
|
|
||||||
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
|
|
||||||
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
|
|
||||||
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
|
|
||||||
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
|
||||||
|
|
||||||
include(CheckTypeSize)
|
|
||||||
include(CheckFunctionExists)
|
|
||||||
include(CheckIncludeFile)
|
|
||||||
include(CheckCSourceCompiles)
|
|
||||||
|
|
||||||
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
|
||||||
check_include_file(stdint.h HAVE_STDINT_H)
|
|
||||||
check_include_file(stddef.h HAVE_STDDEF_H)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check to see if we have large file support
|
|
||||||
#
|
|
||||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
|
|
||||||
# We add these other definitions here because CheckTypeSize.cmake
|
|
||||||
# in CMake 2.4.x does not automatically do so and we want
|
|
||||||
# compatibility with CMake 2.4.x.
|
|
||||||
if(HAVE_SYS_TYPES_H)
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
|
|
||||||
endif()
|
|
||||||
if(HAVE_STDINT_H)
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
|
|
||||||
endif()
|
|
||||||
if(HAVE_STDDEF_H)
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
|
|
||||||
endif()
|
|
||||||
check_type_size(off64_t OFF64_T)
|
|
||||||
check_type_size(off64_t OFF64_T)
|
|
||||||
if(HAVE_OFF64_T)
|
|
||||||
add_definitions(-D_LARGEFILE64_SOURCE=1)
|
|
||||||
endif()
|
|
||||||
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for fseeko
|
|
||||||
#
|
|
||||||
check_function_exists(fseeko HAVE_FSEEKO)
|
|
||||||
if(NOT HAVE_FSEEKO)
|
|
||||||
add_definitions(-DNO_FSEEKO)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for unistd.h
|
|
||||||
#
|
|
||||||
check_include_file(unistd.h Z_HAVE_UNISTD_H)
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set(CMAKE_DEBUG_POSTFIX "d")
|
|
||||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
||||||
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
|
|
||||||
# If we're doing an out of source build and the user has a zconf.h
|
|
||||||
# in their source tree...
|
|
||||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
|
|
||||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
|
|
||||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
|
|
||||||
${ZLIB_PC} @ONLY)
|
|
||||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
|
|
||||||
|
|
||||||
|
|
||||||
#============================================================================
|
|
||||||
# zlib
|
|
||||||
#============================================================================
|
|
||||||
|
|
||||||
set(ZLIB_PUBLIC_HDRS
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
|
|
||||||
zlib.h
|
|
||||||
)
|
|
||||||
set(ZLIB_PRIVATE_HDRS
|
|
||||||
crc32.h
|
|
||||||
deflate.h
|
|
||||||
gzguts.h
|
|
||||||
inffast.h
|
|
||||||
inffixed.h
|
|
||||||
inflate.h
|
|
||||||
inftrees.h
|
|
||||||
trees.h
|
|
||||||
zutil.h
|
|
||||||
)
|
|
||||||
set(ZLIB_SRCS
|
|
||||||
adler32.c
|
|
||||||
compress.c
|
|
||||||
crc32.c
|
|
||||||
deflate.c
|
|
||||||
gzclose.c
|
|
||||||
gzlib.c
|
|
||||||
gzread.c
|
|
||||||
gzwrite.c
|
|
||||||
inflate.c
|
|
||||||
infback.c
|
|
||||||
inftrees.c
|
|
||||||
inffast.c
|
|
||||||
trees.c
|
|
||||||
uncompr.c
|
|
||||||
zutil.c
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT MINGW)
|
|
||||||
set(ZLIB_DLL_SRCS
|
|
||||||
win32/zlib1.rc # If present will override custom build rule below.
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
if(ASM686)
|
|
||||||
set(ZLIB_ASMS contrib/asm686/match.S)
|
|
||||||
elseif (AMD64)
|
|
||||||
set(ZLIB_ASMS contrib/amd64/amd64-match.S)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if(ZLIB_ASMS)
|
|
||||||
add_definitions(-DASMV)
|
|
||||||
set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
if(ASM686)
|
|
||||||
ENABLE_LANGUAGE(ASM_MASM)
|
|
||||||
set(ZLIB_ASMS
|
|
||||||
contrib/masmx86/inffas32.asm
|
|
||||||
contrib/masmx86/match686.asm
|
|
||||||
)
|
|
||||||
elseif (AMD64)
|
|
||||||
ENABLE_LANGUAGE(ASM_MASM)
|
|
||||||
set(ZLIB_ASMS
|
|
||||||
contrib/masmx64/gvmat64.asm
|
|
||||||
contrib/masmx64/inffasx64.asm
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ZLIB_ASMS)
|
|
||||||
add_definitions(-DASMV -DASMINF)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
|
|
||||||
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
|
|
||||||
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
|
|
||||||
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
|
|
||||||
|
|
||||||
if(MINGW)
|
|
||||||
# This gets us DLL resource information when compiling on MinGW.
|
|
||||||
if(NOT CMAKE_RC_COMPILER)
|
|
||||||
set(CMAKE_RC_COMPILER windres.exe)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
|
||||||
COMMAND ${CMAKE_RC_COMPILER}
|
|
||||||
-D GCC_WINDRES
|
|
||||||
-I ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-I ${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
-o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
|
||||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
|
|
||||||
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
|
||||||
endif(MINGW)
|
|
||||||
|
|
||||||
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
# On unix-like platforms the library is almost always called libz
|
|
||||||
set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z)
|
|
||||||
endif()
|
|
||||||
@ -63,6 +63,11 @@
|
|||||||
"name": "ENABLE_TESTING",
|
"name": "ENABLE_TESTING",
|
||||||
"value": "True",
|
"value": "True",
|
||||||
"type": "BOOL"
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_LAMMPS_GUI",
|
||||||
|
"value": "False",
|
||||||
|
"type": "BOOL"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -303,6 +308,54 @@
|
|||||||
"type": "STRING"
|
"type": "STRING"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "x64-GUI-MSVC",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||||
|
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||||
|
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -D QT_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5 -D Qt5_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5",
|
||||||
|
"buildCommandArgs": "",
|
||||||
|
"ctestCommandArgs": "-V",
|
||||||
|
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "BUILD_SHARED_LIBS",
|
||||||
|
"value": "True",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_TOOLS",
|
||||||
|
"value": "True",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LAMMPS_EXCEPTIONS",
|
||||||
|
"value": "True",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ENABLE_TESTING",
|
||||||
|
"value": "False",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_MPI",
|
||||||
|
"value": "False",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "WITH_PNG",
|
||||||
|
"value": "False",
|
||||||
|
"type": "BOOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BUILD_LAMMPS_GUI",
|
||||||
|
"value": "True",
|
||||||
|
"type": "BOOL"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -64,6 +64,8 @@ if(GPU_API STREQUAL "CUDA")
|
|||||||
endif()
|
endif()
|
||||||
set(GPU_CUDA_MPS_FLAGS "-DCUDA_MPS_SUPPORT")
|
set(GPU_CUDA_MPS_FLAGS "-DCUDA_MPS_SUPPORT")
|
||||||
endif()
|
endif()
|
||||||
|
option(CUDA_BUILD_MULTIARCH "Enable building CUDA kernels for all supported GPU architectures" ON)
|
||||||
|
mark_as_advanced(GPU_BUILD_MULTIARCH)
|
||||||
|
|
||||||
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
||||||
|
|
||||||
@ -93,6 +95,7 @@ if(GPU_API STREQUAL "CUDA")
|
|||||||
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
|
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
|
||||||
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}")
|
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}")
|
||||||
|
|
||||||
|
if(CUDA_BUILD_MULTIARCH)
|
||||||
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
|
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
|
||||||
# only the Kepler achitecture and beyond is supported
|
# only the Kepler achitecture and beyond is supported
|
||||||
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
||||||
@ -145,6 +148,7 @@ if(GPU_API STREQUAL "CUDA")
|
|||||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
||||||
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
|
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
|
||||||
|
|||||||
@ -88,7 +88,7 @@ else()
|
|||||||
if(CMAKE_REQUEST_PIC)
|
if(CMAKE_REQUEST_PIC)
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
|
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
|
||||||
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
|
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
|
||||||
|
|||||||
@ -37,7 +37,11 @@ if(BUILD_TOOLS)
|
|||||||
add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build)
|
add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
if(BUILD_LAMMPS_SHELL)
|
if(BUILD_LAMMPS_SHELL)
|
||||||
|
if(NOT PkgConfig_FOUND)
|
||||||
|
message(FATAL_ERROR "Must have pkg-config installed for building LAMMPS shell")
|
||||||
|
endif()
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline)
|
pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline)
|
||||||
|
|
||||||
@ -64,4 +68,8 @@ if(BUILD_LAMMPS_SHELL)
|
|||||||
install(FILES ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/)
|
install(FILES ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_LAMMPS_GUI)
|
||||||
|
get_filename_component(LAMMPS_GUI_DIR ${LAMMPS_SOURCE_DIR}/../tools/lammps-gui ABSOLUTE)
|
||||||
|
get_filename_component(LAMMPS_GUI_BIN ${CMAKE_BINARY_DIR}/lammps-gui-build ABSOLUTE)
|
||||||
|
add_subdirectory(${LAMMPS_GUI_DIR} ${LAMMPS_GUI_BIN})
|
||||||
|
endif()
|
||||||
|
|||||||
BIN
cmake/packaging/LAMMPS_DMG_Background.png
Normal file
BIN
cmake/packaging/LAMMPS_DMG_Background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
34
cmake/packaging/MacOSXBundleInfo.plist.in
Normal file
34
cmake/packaging/MacOSXBundleInfo.plist.in
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en-US</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>The LAMMPS Molecular Dynamics Software</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>lammps</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>org.lammps.gui</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleLongVersionString</key>
|
||||||
|
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>LAMMPS</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||||
|
<key>CSResourcesFileMapped</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
69
cmake/packaging/README.macos
Normal file
69
cmake/packaging/README.macos
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
LAMMPS and LAMMPS GUI universal binaries for macOS (arm64/x86_64)
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
This package provides universal binaries of LAMMPS and LAMMPS GUI that should
|
||||||
|
run on macOS systems running running macOS version 11 (Big Sur) or newer. Note
|
||||||
|
the binaries are compiled without MPI support and contain a compatible subset
|
||||||
|
of the available packages.
|
||||||
|
|
||||||
|
The following individual commands are included:
|
||||||
|
binary2txt lammps-gui lmp msi2lmp phana stl_bin2txt
|
||||||
|
|
||||||
|
After copying the lammps-gui folder into your Applications folder, please follow
|
||||||
|
these steps:
|
||||||
|
|
||||||
|
1. Open the Terminal app
|
||||||
|
|
||||||
|
2. Type the following command and press ENTER:
|
||||||
|
|
||||||
|
open ~/.zprofile
|
||||||
|
|
||||||
|
This will open a text editor for modifying the .zprofile file in your home
|
||||||
|
directory.
|
||||||
|
|
||||||
|
3. Add the following lines to the end of the file, save it, and close the editor
|
||||||
|
|
||||||
|
LAMMPS_INSTALL_DIR=/Applications/LAMMPS.app/Contents
|
||||||
|
LAMMPS_POTENTIALS=${LAMMPS_INSTALL_DIR}/share/lammps/potentials
|
||||||
|
LAMMPS_BENCH_DIR=${LAMMPS_INSTALL_DIR}/share/lammps/bench
|
||||||
|
MSI2LMP_LIBRARY=${LAMMPS_INSTALL_DIR}/share/lammps/frc_files
|
||||||
|
PATH=${LAMMPS_INSTALL_DIR}/bin:$PATH
|
||||||
|
export LAMMPS_POTENTIALS LAMMPS_BENCH_DIR PATH
|
||||||
|
|
||||||
|
4. In your existing terminal, type the following command make the settings active
|
||||||
|
|
||||||
|
source ~/.zprofile
|
||||||
|
|
||||||
|
Note, you don't have to type this in new terminals, since they will apply
|
||||||
|
the changes from .zprofile automatically.
|
||||||
|
|
||||||
|
Note: the above assumes you use the default shell (zsh) that comes with
|
||||||
|
MacOS. If you customized MacOS to use a different shell, you'll need to modify
|
||||||
|
that shell's init file (.cshrc, .bashrc, etc.) instead with appropiate commands
|
||||||
|
to modify the same environment variables.
|
||||||
|
|
||||||
|
5. Try running LAMMPS (which might fail, see step 7)
|
||||||
|
|
||||||
|
lmp -in ${LAMMPS_BENCH_DIR}/in.lj
|
||||||
|
|
||||||
|
6. Try running the LAMMPS GUI
|
||||||
|
|
||||||
|
lammps-gui ${LAMMPS_BENCH_DIR}/in.rhodo
|
||||||
|
|
||||||
|
Depending on the size and resolution of your screen, the fonts may
|
||||||
|
be too small to read. This can be adjusted by setting the environment
|
||||||
|
variable QT_FONT_DPI. The default value would be 72, so to increase
|
||||||
|
the fonts by a third one can add to the .zprofile file the line
|
||||||
|
|
||||||
|
export QT_FONT_DPI=96
|
||||||
|
|
||||||
|
and reload as shown above.
|
||||||
|
|
||||||
|
7. Give permission to execute the commands (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt)
|
||||||
|
|
||||||
|
MacOS will likely block the initial run of the executables, since they
|
||||||
|
were downloaded from the internet and are missing a known signature from an
|
||||||
|
identified developer. Go to "Settings" and search for "Security settings". It
|
||||||
|
should display a message that an executable like "lmp" was blocked. Press
|
||||||
|
"Open anyway", which might prompt you for your admin credentials. Afterwards
|
||||||
|
"lmp" and the other executables should work as expected.
|
||||||
77
cmake/packaging/build_linux_tgz.sh
Executable file
77
cmake/packaging/build_linux_tgz.sh
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
APP_NAME=lammps-gui
|
||||||
|
DESTDIR=${PWD}/../LAMMPS_GUI
|
||||||
|
|
||||||
|
echo "Delete old files, if they exist"
|
||||||
|
rm -rf ${DESTDIR} ../LAMMPS-Linux-amd64.tar.gz
|
||||||
|
|
||||||
|
echo "Create staging area for deployment and populate"
|
||||||
|
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
|
||||||
|
|
||||||
|
echo "Remove debug info"
|
||||||
|
for s in ${DESTDIR}/bin/* ${DESTDIR}/lib/liblammps*
|
||||||
|
do \
|
||||||
|
test -f $s && strip --strip-debug $s
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Remove libc, gcc, and X11 related shared libs"
|
||||||
|
rm -f ${DESTDIR}/lib/ld*.so ${DESTDIR}/lib/ld*.so.[0-9]
|
||||||
|
rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.?
|
||||||
|
rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so
|
||||||
|
rm -f ${DESTDIR}/lib/libX* ${DESTDIR}/lib/libxcb*
|
||||||
|
rm -f ${DESTDIR}/lib/libgcc_s*
|
||||||
|
rm -f ${DESTDIR}/lib/libstdc++*
|
||||||
|
|
||||||
|
# get qt dir
|
||||||
|
QTDIR=$(ldd ${DESTDIR}/bin/lammps-gui | grep libQt5Core | sed -e 's/^.*=> *//' -e 's/libQt5Core.so.*$/qt5/')
|
||||||
|
cat > ${DESTDIR}/bin/qt.conf <<EOF
|
||||||
|
[Paths]
|
||||||
|
Plugins = ../qt5plugins
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# platform plugin
|
||||||
|
mkdir -p ${DESTDIR}/qt5plugins/platforms
|
||||||
|
cp ${QTDIR}/plugins/platforms/libqxcb.so ${DESTDIR}/qt5plugins/platforms
|
||||||
|
|
||||||
|
# get platform plugin dependencies
|
||||||
|
QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd ${QTDIR}/plugins/platforms/libqxcb.so | grep -v ${DESTDIR} | grep libQt5 | sed -e 's/^.*=> *//' -e 's/\(libQt5.*.so.*\) .*$/\1/')
|
||||||
|
for dep in ${QTDEPS}
|
||||||
|
do \
|
||||||
|
cp ${dep} ${DESTDIR}/lib
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Add additional plugins for Qt"
|
||||||
|
for dir in styles imageformats
|
||||||
|
do \
|
||||||
|
cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/
|
||||||
|
done
|
||||||
|
|
||||||
|
# get imageplugin dependencies
|
||||||
|
for s in ${DESTDIR}/qt5plugins/imageformats/*.so
|
||||||
|
do \
|
||||||
|
QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd $s | grep -v ${DESTDIR} | grep -E '(libQt5|jpeg)' | sed -e 's/^.*=> *//' -e 's/\(lib.*.so.*\) .*$/\1/')
|
||||||
|
for dep in ${QTDEPS}
|
||||||
|
do \
|
||||||
|
cp ${dep} ${DESTDIR}/lib
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Set up wrapper script"
|
||||||
|
MYDIR=$(dirname "$0")
|
||||||
|
cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin
|
||||||
|
for s in ${DESTDIR}/bin/*
|
||||||
|
do \
|
||||||
|
EXE=$(basename $s)
|
||||||
|
test ${EXE} = linux_wrapper.sh && continue
|
||||||
|
test ${EXE} = qt.conf && continue
|
||||||
|
ln -s bin/linux_wrapper.sh ${DESTDIR}/${EXE}
|
||||||
|
done
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
tar -czvvf LAMMPS-Linux-amd64.tar.gz LAMMPS_GUI
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Cleanup dir"
|
||||||
|
rm -r ${DESTDIR}
|
||||||
|
exit 0
|
||||||
111
cmake/packaging/build_macos_dmg.sh
Executable file
111
cmake/packaging/build_macos_dmg.sh
Executable file
@ -0,0 +1,111 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
APP_NAME=lammps-gui
|
||||||
|
|
||||||
|
echo "Delete old files, if they exist"
|
||||||
|
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg
|
||||||
|
|
||||||
|
echo "Create initial dmg file with macdeployqt"
|
||||||
|
macdeployqt lammps-gui.app -dmg
|
||||||
|
echo "Create writable dmg file"
|
||||||
|
hdiutil convert ${APP_NAME}.dmg -format UDRW -o ${APP_NAME}-rw.dmg
|
||||||
|
|
||||||
|
echo "Mount writeable DMG file in read-write mode. Keep track of device and volume names"
|
||||||
|
DEVICE=$(hdiutil attach -readwrite -noverify ${APP_NAME}-rw.dmg | grep '^/dev/' | sed 1q | awk '{print $1}')
|
||||||
|
VOLUME=$(df | grep ${DEVICE} | sed -e 's/^.*\(\/Volumes\/\)/\1/')
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
echo "Create link to Application folder and move README and background image files"
|
||||||
|
|
||||||
|
pushd "${VOLUME}"
|
||||||
|
ln -s /Applications .
|
||||||
|
mv ${APP_NAME}.app/Contents/Resources/README.txt .
|
||||||
|
mkdir .background
|
||||||
|
mv ${APP_NAME}.app/Contents/Resources/LAMMPS_DMG_Background.png .background/background.png
|
||||||
|
mv ${APP_NAME}.app LAMMPS.app
|
||||||
|
cd LAMMPS.app/Contents
|
||||||
|
|
||||||
|
echo "Attach icons to LAMMPS console and GUI executables"
|
||||||
|
echo "read 'icns' (-16455) \"Resources/lammps.icns\";" > icon.rsrc
|
||||||
|
Rez -a icon.rsrc -o bin/lmp
|
||||||
|
SetFile -a C bin/lmp
|
||||||
|
Rez -a icon.rsrc -o MacOS/lammps-gui
|
||||||
|
SetFile -a C MacOS/lammps-gui
|
||||||
|
rm icon.rsrc
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo 'Tell the Finder to resize the window, set the background,'
|
||||||
|
echo 'change the icon size, place the icons in the right position, etc.'
|
||||||
|
echo '
|
||||||
|
tell application "Finder"
|
||||||
|
tell disk "'${APP_NAME}'"
|
||||||
|
|
||||||
|
-- wait for the image to finish mounting
|
||||||
|
set open_attempts to 0
|
||||||
|
repeat while open_attempts < 4
|
||||||
|
try
|
||||||
|
open
|
||||||
|
delay 1
|
||||||
|
set open_attempts to 5
|
||||||
|
close
|
||||||
|
on error errStr number errorNumber
|
||||||
|
set open_attempts to open_attempts + 1
|
||||||
|
delay 10
|
||||||
|
end try
|
||||||
|
end repeat
|
||||||
|
delay 5
|
||||||
|
|
||||||
|
-- open the image the first time and save a .DS_Store
|
||||||
|
-- just the background and icon setup
|
||||||
|
open
|
||||||
|
set current view of container window to icon view
|
||||||
|
set theViewOptions to the icon view options of container window
|
||||||
|
set background picture of theViewOptions to file ".background:background.png"
|
||||||
|
set arrangement of theViewOptions to not arranged
|
||||||
|
set icon size of theViewOptions to 64
|
||||||
|
delay 5
|
||||||
|
close
|
||||||
|
|
||||||
|
-- next set up the position of the app and Applications symlink
|
||||||
|
-- plus hide all window decorations
|
||||||
|
open
|
||||||
|
update without registering applications
|
||||||
|
tell container window
|
||||||
|
set sidebar width to 0
|
||||||
|
set statusbar visible to false
|
||||||
|
set toolbar visible to false
|
||||||
|
set the bounds to { 100, 40, 868, 640 }
|
||||||
|
set position of item "'LAMMPS'.app" to { 190, 216 }
|
||||||
|
set position of item "Applications" to { 576, 216 }
|
||||||
|
set position of item "README.txt" to { 190, 400 }
|
||||||
|
end tell
|
||||||
|
update without registering applications
|
||||||
|
delay 5
|
||||||
|
close
|
||||||
|
|
||||||
|
-- one last open and close to check the results
|
||||||
|
open
|
||||||
|
delay 5
|
||||||
|
close
|
||||||
|
end tell
|
||||||
|
delay 1
|
||||||
|
end tell
|
||||||
|
' | osascript
|
||||||
|
|
||||||
|
sync
|
||||||
|
|
||||||
|
echo "Unmount modified disk image and convert to compressed read-only image"
|
||||||
|
hdiutil detach "${DEVICE}"
|
||||||
|
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS-macOS-multiarch.dmg"
|
||||||
|
|
||||||
|
echo "Attach icon to .dmg file"
|
||||||
|
echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc
|
||||||
|
Rez -a icon.rsrc -o LAMMPS-macOS-multiarch.dmg
|
||||||
|
SetFile -a C LAMMPS-macOS-multiarch.dmg
|
||||||
|
rm icon.rsrc
|
||||||
|
|
||||||
|
echo "Delete temporary disk images"
|
||||||
|
rm -f "${APP_NAME}-rw.dmg"
|
||||||
|
rm -f "${APP_NAME}.dmg"
|
||||||
|
|
||||||
|
exit 0
|
||||||
26
cmake/packaging/build_windows_cross_zip.sh
Executable file
26
cmake/packaging/build_windows_cross_zip.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash -vx
|
||||||
|
|
||||||
|
APP_NAME=lammps-gui
|
||||||
|
DESTDIR=${PWD}/../LAMMPS_GUI
|
||||||
|
|
||||||
|
echo "Delete old files, if they exist"
|
||||||
|
rm -rvf ${DESTDIR} LAMMPS-Win10-amd64.zip
|
||||||
|
|
||||||
|
echo "Create staging area for deployment and populate"
|
||||||
|
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
|
||||||
|
|
||||||
|
echo "Add required dependencies for Qt"
|
||||||
|
for dll in Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll
|
||||||
|
do \
|
||||||
|
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/${dll} ${DESTDIR}/bin/
|
||||||
|
done
|
||||||
|
for dir in styles platforms imageformats
|
||||||
|
do \
|
||||||
|
mkdir -p ${DESTDIR}/${dir}
|
||||||
|
cp -r /usr/x86_64-w64-mingw32/sys-root/mingw/lib/qt5/plugins/${dir}/*.dll ${DESTDIR}/${dir}
|
||||||
|
done
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
zip -9rv LAMMPS-Win10-amd64.zip LAMMPS_GUI
|
||||||
|
popd
|
||||||
|
exit 0
|
||||||
28
cmake/packaging/build_windows_vs.cmake
Normal file
28
cmake/packaging/build_windows_vs.cmake
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# CMake script to be run post installation to build zipped package
|
||||||
|
|
||||||
|
# clean up old zipfile and deployment tree
|
||||||
|
file(REMOVE LAMMPS-Win10-amd64.zip)
|
||||||
|
file(REMOVE_RECURSE LAMMPS_GUI)
|
||||||
|
file(RENAME ${INSTNAME} LAMMPS_GUI)
|
||||||
|
|
||||||
|
# move all executables and dlls to main folder and delete bin folder
|
||||||
|
file(GLOB BINFILES LIST_DIRECTORIES FALSE LAMMPS_GUI/bin/*.exe LAMMPS_GUI/bin/*.dll)
|
||||||
|
foreach(bin ${BINFILES})
|
||||||
|
get_filename_component(exe ${bin} NAME)
|
||||||
|
file(RENAME ${bin} LAMMPS_GUI/${exe})
|
||||||
|
endforeach()
|
||||||
|
file(REMOVE_RECURSE LAMMPS_GUI/bin)
|
||||||
|
|
||||||
|
# create qt.conf so Qt will find its plugins
|
||||||
|
file(WRITE LAMMPS_GUI/qt.conf "[Paths]\r\nPlugins = qt5plugins\r\n")
|
||||||
|
|
||||||
|
# initialize environment and then run windeployqt to populate folder with missing dependencies and Qt plugins
|
||||||
|
file(WRITE qtdeploy.bat "@ECHO OFF\r\nset VSCMD_DEBUG=0\r\nCALL ${VC_INIT} x64\r\nset PATH=${QT5_BIN_DIR};%PATH%\r\nwindeployqt --plugindir LAMMPS_GUI/qt5plugins --release LAMMPS_GUI/lammps-gui.exe --no-quick-import --no-webkit2 --no-translations --no-system-d3d-compiler --no-angle --no-opengl-sw\r\n")
|
||||||
|
execute_process(COMMAND cmd.exe /c qtdeploy.bat COMMAND_ECHO STDERR)
|
||||||
|
file(REMOVE qtdeploy.bat)
|
||||||
|
|
||||||
|
# create zip archive
|
||||||
|
file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS-Win10-amd64.zip")
|
||||||
|
execute_process(COMMAND powershell -ExecutionPolicy Bypass -File makearchive.ps1)
|
||||||
|
file(REMOVE makearchive.ps1)
|
||||||
|
file(REMOVE_RECURSE LAMMPS_GUI)
|
||||||
BIN
cmake/packaging/lammps-icon-1024x1024.png
Normal file
BIN
cmake/packaging/lammps-icon-1024x1024.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 598 KiB |
BIN
cmake/packaging/lammps.icns
Normal file
BIN
cmake/packaging/lammps.icns
Normal file
Binary file not shown.
15
cmake/packaging/linux_wrapper.sh
Executable file
15
cmake/packaging/linux_wrapper.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# wrapper for bundled executables
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
EXENAME=$(basename "$0")
|
||||||
|
|
||||||
|
# append to LD_LIBRARY_PATH to prefer local (newer) libs
|
||||||
|
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib
|
||||||
|
|
||||||
|
# set some environment variables for LAMMPS etc.
|
||||||
|
LAMMPS_POTENTIALS=${BASEDIR}/share/lammps/potentials
|
||||||
|
MSI2LMP_LIBRARY=${BASEDIR}/share/lammps/frc_files
|
||||||
|
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY
|
||||||
|
|
||||||
|
exec "${BASEDIR}/bin/${EXENAME}" "$@"
|
||||||
30
cmake/packaging/png2iconset.sh
Executable file
30
cmake/packaging/png2iconset.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $# != 2 ]
|
||||||
|
then
|
||||||
|
echo "usage: $0 <pngfile> <iconset name>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
png="$1"
|
||||||
|
ico="$2"
|
||||||
|
|
||||||
|
if [ ! -f ${png} ]
|
||||||
|
then
|
||||||
|
echo "PNG Image $1 not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ${ico}.iconset
|
||||||
|
mkdir ${ico}.iconset
|
||||||
|
sips -z 16 16 ${png} --out ${ico}.iconset/icon_16x16.png
|
||||||
|
sips -z 32 32 ${png} --out ${ico}.iconset/icon_16x16@2x.png
|
||||||
|
sips -z 32 32 ${png} --out ${ico}.iconset/icon_32x32.png
|
||||||
|
sips -z 64 64 ${png} --out ${ico}.iconset/icon_32x32@2x.png
|
||||||
|
sips -z 128 128 ${png} --out ${ico}.iconset/icon_128x128.png
|
||||||
|
sips -z 256 256 ${png} --out ${ico}.iconset/icon_128x128@2x.png
|
||||||
|
sips -z 256 256 ${png} --out ${ico}.iconset/icon_256x256.png
|
||||||
|
sips -z 512 512 ${png} --out ${ico}.iconset/icon_256x256@2x.png
|
||||||
|
sips -z 512 512 ${png} --out ${ico}.iconset/icon_512x512.png
|
||||||
|
sips -z 1024 1024 ${png} --out ${ico}.iconset/icon_512x512@2x.png
|
||||||
|
iconutil -c icns ${ico}.iconset
|
||||||
|
rm -rf ${ico}.iconset
|
||||||
14
cmake/presets/macos-multiarch.cmake
Normal file
14
cmake/presets/macos-multiarch.cmake
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# 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_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_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_SHARED_LIBS FALSE CACHE BOOL "" FORCE)
|
||||||
|
set(LAMMPS_EXCEPTIONS TRUE CACHE BOOL "" FORCE)
|
||||||
@ -1,7 +1,7 @@
|
|||||||
.TH LAMMPS "1" "15 June 2023" "2023-06-15"
|
.TH LAMMPS "1" "2 August 2023" "2023-08-2"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator. Version 15 June 2023
|
\- Molecular Dynamics Simulator. Version 2 August 2023
|
||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B lmp
|
.B lmp
|
||||||
|
|||||||
@ -203,7 +203,7 @@ Bibliography
|
|||||||
A Caro, DA Crowson, M Caro; Phys Rev Lett, 95, 075702 (2005)
|
A Caro, DA Crowson, M Caro; Phys Rev Lett, 95, 075702 (2005)
|
||||||
|
|
||||||
**(CasP)**
|
**(CasP)**
|
||||||
CasP webpage: https://www.helmholtz-berlin.de/people/gregor-schiwietz/casp_en.html
|
CasP webpage: http://www.casp-program.org/
|
||||||
|
|
||||||
**(Cawkwell2012)**
|
**(Cawkwell2012)**
|
||||||
A.\ M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86 (17), 174308 (2012).
|
A.\ M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86 (17), 174308 (2012).
|
||||||
|
|||||||
@ -140,6 +140,8 @@ CMake build
|
|||||||
# value = yes or no (default)
|
# value = yes or no (default)
|
||||||
-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
|
-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
|
||||||
# value = yes or no (default)
|
# value = yes or no (default)
|
||||||
|
-D CUDA_BUILD_MULTIARCH=value # enables building CUDA kernels for all supported GPU architectures
|
||||||
|
# value = yes (default) or no
|
||||||
-D USE_STATIC_OPENCL_LOADER=value # downloads/includes OpenCL ICD loader library, no local OpenCL headers/libs needed
|
-D USE_STATIC_OPENCL_LOADER=value # downloads/includes OpenCL ICD loader library, no local OpenCL headers/libs needed
|
||||||
# value = yes (default) or no
|
# value = yes (default) or no
|
||||||
|
|
||||||
@ -158,41 +160,49 @@ CMake build
|
|||||||
A more detailed list can be found, for example,
|
A more detailed list can be found, for example,
|
||||||
at `Wikipedia's CUDA article <https://en.wikipedia.org/wiki/CUDA#GPUs_supported>`_
|
at `Wikipedia's CUDA article <https://en.wikipedia.org/wiki/CUDA#GPUs_supported>`_
|
||||||
|
|
||||||
CMake can detect which version of the CUDA toolkit is used and thus will try
|
CMake can detect which version of the CUDA toolkit is used and thus will
|
||||||
to include support for **all** major GPU architectures supported by this toolkit.
|
try to include support for **all** major GPU architectures supported by
|
||||||
Thus the GPU_ARCH setting is merely an optimization, to have code for
|
this toolkit. Thus the GPU_ARCH setting is merely an optimization, to
|
||||||
the preferred GPU architecture directly included rather than having to wait
|
have code for the preferred GPU architecture directly included rather
|
||||||
for the JIT compiler of the CUDA driver to translate it.
|
than having to wait for the JIT compiler of the CUDA driver to translate
|
||||||
|
it. This behavior can be turned off (e.g. to speed up compilation) by
|
||||||
|
setting :code:`CUDA_ENABLE_MULTIARCH` to :code:`no`.
|
||||||
|
|
||||||
When compiling for CUDA or HIP with CUDA, version 8.0 or later of the CUDA toolkit
|
When compiling for CUDA or HIP with CUDA, version 8.0 or later of the
|
||||||
is required and a GPU architecture of Kepler or later, which must *also* be
|
CUDA toolkit is required and a GPU architecture of Kepler or later,
|
||||||
supported by the CUDA toolkit in use **and** the CUDA driver in use.
|
which must *also* be supported by the CUDA toolkit in use **and** the
|
||||||
When compiling for OpenCL, OpenCL version 1.2 or later is required and the
|
CUDA driver in use. When compiling for OpenCL, OpenCL version 1.2 or
|
||||||
GPU must be supported by the GPU driver and OpenCL runtime bundled with the driver.
|
later is required and the GPU must be supported by the GPU driver and
|
||||||
|
OpenCL runtime bundled with the driver.
|
||||||
|
|
||||||
When building with CMake, you **must NOT** build the GPU library in ``lib/gpu``
|
When building with CMake, you **must NOT** build the GPU library in
|
||||||
using the traditional build procedure. CMake will detect files generated by that
|
``lib/gpu`` using the traditional build procedure. CMake will detect
|
||||||
process and will terminate with an error and a suggestion for how to remove them.
|
files generated by that process and will terminate with an error and a
|
||||||
|
suggestion for how to remove them.
|
||||||
|
|
||||||
If you are compiling for OpenCL, the default setting is to download, build, and
|
If you are compiling for OpenCL, the default setting is to download,
|
||||||
link with a static OpenCL ICD loader library and standard OpenCL headers. This
|
build, and link with a static OpenCL ICD loader library and standard
|
||||||
way no local OpenCL development headers or library needs to be present and only
|
OpenCL headers. This way no local OpenCL development headers or library
|
||||||
OpenCL compatible drivers need to be installed to use OpenCL. If this is not
|
needs to be present and only OpenCL compatible drivers need to be
|
||||||
desired, you can set :code:`USE_STATIC_OPENCL_LOADER` to :code:`no`.
|
installed to use OpenCL. If this is not desired, you can set
|
||||||
|
:code:`USE_STATIC_OPENCL_LOADER` to :code:`no`.
|
||||||
|
|
||||||
The GPU library has some multi-thread support using OpenMP. If LAMMPS is built
|
The GPU library has some multi-thread support using OpenMP. If LAMMPS
|
||||||
with ``-D BUILD_OMP=on`` this will also be enabled.
|
is built with ``-D BUILD_OMP=on`` this will also be enabled.
|
||||||
|
|
||||||
If you are compiling with HIP, note that before running CMake you will have to
|
If you are compiling with HIP, note that before running CMake you will
|
||||||
set appropriate environment variables. Some variables such as
|
have to set appropriate environment variables. Some variables such as
|
||||||
:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are necessary for :code:`hipcc`
|
:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are
|
||||||
and the linker to work correctly.
|
necessary for :code:`hipcc` and the linker to work correctly.
|
||||||
|
|
||||||
Using CHIP-SPV implementation of HIP is now supported. It allows one to run HIP
|
.. versionadded:: 3Aug2022
|
||||||
code on Intel GPUs via the OpenCL or Level Zero backends. To use CHIP-SPV, you must
|
|
||||||
set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake command line as CHIP-SPV does not
|
Using the CHIP-SPV implementation of HIP is supported. It allows one to
|
||||||
yet support hipCUB. The use of HIP for Intel GPUs is still experimental so you
|
run HIP code on Intel GPUs via the OpenCL or Level Zero backends. To use
|
||||||
should only use this option in preparations to run on Aurora system at ANL.
|
CHIP-SPV, you must set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake
|
||||||
|
command line as CHIP-SPV does not yet support hipCUB. As of Summer 2022,
|
||||||
|
the use of HIP for Intel GPUs is experimental. You should only use this
|
||||||
|
option in preparations to run on Aurora system at Argonne.
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
|||||||
@ -92,8 +92,8 @@ Arguments for these methods can be values returned by the
|
|||||||
*setup_grid()* method (described below), which define the extent of
|
*setup_grid()* method (described below), which define the extent of
|
||||||
the grid cells (owned+ghost) the processor owns. These 4 methods
|
the grid cells (owned+ghost) the processor owns. These 4 methods
|
||||||
allocate memory for 2d (first two) and 3d (second two) grid data. The
|
allocate memory for 2d (first two) and 3d (second two) grid data. The
|
||||||
two methods that end in "_one" allocate an array which stores a single
|
two methods that end in "_offset" allocate an array which stores a single
|
||||||
value per grid cell. The two that end in "_multi" allocate an array
|
value per grid cell. The two that end in "_last" allocate an array
|
||||||
which stores *Nvalues* per grid cell.
|
which stores *Nvalues* per grid cell.
|
||||||
|
|
||||||
.. code-block:: c++
|
.. code-block:: c++
|
||||||
|
|||||||
@ -13,9 +13,9 @@ box with a single z plane of atoms - e.g.
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
create box 1 -10 10 -10 10 -0.25 0.25
|
create_box 1 -10 10 -10 10 -0.25 0.25
|
||||||
|
|
||||||
If using the :doc:`read data <read_data>` command to read in a file of
|
If using the :doc:`read_data <read_data>` command to read in a file of
|
||||||
atom coordinates, set the "zlo zhi" values to be finite but narrow,
|
atom coordinates, set the "zlo zhi" values to be finite but narrow,
|
||||||
similar to the create_box command settings just described. For each
|
similar to the create_box command settings just described. For each
|
||||||
atom in the file, assign a z coordinate so it falls inside the
|
atom in the file, assign a z coordinate so it falls inside the
|
||||||
|
|||||||
@ -79,9 +79,9 @@ As bonds can be broken between neighbor list builds, the
|
|||||||
bond styles. There are two possible settings which determine how pair
|
bond styles. There are two possible settings which determine how pair
|
||||||
interactions work between bonded particles. First, one can overlay
|
interactions work between bonded particles. First, one can overlay
|
||||||
pair forces with bond forces such that all bonded particles also
|
pair forces with bond forces such that all bonded particles also
|
||||||
feel pair interactions. This can be accomplished by using the *overlay/pair*
|
feel pair interactions. This can be accomplished by setting the *overlay/pair*
|
||||||
keyword present in all bpm bond styles and by using the following special
|
keyword present in all bpm bond styles to *yes* and requires using the
|
||||||
bond settings
|
following special bond settings
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -107,7 +107,17 @@ bond lists is expensive. By setting the lj weight for 1-2 bonds to
|
|||||||
zero, this turns off pairwise interactions. Even though there are no
|
zero, this turns off pairwise interactions. Even though there are no
|
||||||
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
||||||
ensures all bonded neighbors are still included in the neighbor list
|
ensures all bonded neighbors are still included in the neighbor list
|
||||||
in case bonds break between neighbor list builds.
|
in case bonds break between neighbor list builds. If bond breakage is
|
||||||
|
disabled during a simulation run by setting the *break* keyword to *no*,
|
||||||
|
a zero coul weight for 1-2 bonds can be used to exclude bonded atoms
|
||||||
|
from the neighbor list builds
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
special_bonds lj 0 1 1 coul 0 1 1
|
||||||
|
|
||||||
|
This can be useful for post-processing, or to determine pair interaction
|
||||||
|
properties between distinct bonded particles.
|
||||||
|
|
||||||
To monitor the fracture of bonds in the system, all BPM bond styles
|
To monitor the fracture of bonds in the system, all BPM bond styles
|
||||||
have the ability to record instances of bond breakage to output using
|
have the ability to record instances of bond breakage to output using
|
||||||
|
|||||||
@ -28,20 +28,34 @@ Include files (varied)
|
|||||||
packages and hard-to-find bugs have regularly manifested in the
|
packages and hard-to-find bugs have regularly manifested in the
|
||||||
past.
|
past.
|
||||||
|
|
||||||
- Header files, especially those defining a "style", should only use
|
- Header files, especially those defining a "style", should only use the
|
||||||
the absolute minimum number of include files and **must not**
|
absolute minimum number of include files and **must not** contain any
|
||||||
contain any ``using`` statements. Typically, that would only be the
|
``using`` statements. Typically, that would only be the header for the
|
||||||
header for the base class. Instead, any include statements should
|
base class. Instead, any include statements should be put in the
|
||||||
be put in the corresponding implementation files and forward
|
corresponding implementation files and forward declarations be used.
|
||||||
declarations be used. For implementation files, the "include what
|
For implementation files, the "include what you use" principle should
|
||||||
you use" principle should be employed. However, there is the
|
be employed. However, there is the notable exception that when the
|
||||||
notable exception that when the ``pointers.h`` header is included
|
``pointers.h`` header is included (or the header of one of the classes
|
||||||
(or one of the base classes derived from it) certain headers will
|
derived from it), certain headers will *always* be included and thus
|
||||||
always be included and thus do not need to be explicitly specified.
|
do not need to be explicitly specified. These are: `mpi.h`,
|
||||||
These are: `mpi.h`, `cstddef`, `cstdio`, `cstdlib`, `string`,
|
`cstddef`, `cstdio`, `cstdlib`, `string`, `utils.h`, `vector`,
|
||||||
`utils.h`, `vector`, `fmt/format.h`, `climits`, `cinttypes`. This
|
`fmt/format.h`, `climits`, `cinttypes`. This also means any such file
|
||||||
also means any such file can assume that `FILE`, `NULL`, and
|
can assume that `FILE`, `NULL`, and `INT_MAX` are defined.
|
||||||
`INT_MAX` are defined.
|
|
||||||
|
- Class members variables should not be initialized in the header file,
|
||||||
|
but instead should be initialized either in the initializer list of
|
||||||
|
the constructor or explicitly assigned in the body of the constructor.
|
||||||
|
If the member variable is relevant to the functionality of a class
|
||||||
|
(for example when it stores a value from a command line argument), the
|
||||||
|
member variable declaration is followed by a brief comment explaining
|
||||||
|
its purpose and what its values can be. Class members that are
|
||||||
|
pointers should always be initialized to ``nullptr`` in the
|
||||||
|
initializer list of the constructor. This reduces clutter in the
|
||||||
|
header and avoids accessing uninitialized pointers, which leads to
|
||||||
|
hard to debug issues, class members are often implicitly initialized
|
||||||
|
to ``NULL`` on the first use (but *not* after a :doc:`clear command
|
||||||
|
<clear>`). Please see the files ``reset_atoms_mol.h`` and
|
||||||
|
``reset_atoms_mol.cpp`` as an example.
|
||||||
|
|
||||||
- System headers or headers from installed libraries are included with
|
- System headers or headers from installed libraries are included with
|
||||||
angular brackets (example: ``#include <vector>``), while local
|
angular brackets (example: ``#include <vector>``), while local
|
||||||
|
|||||||
@ -93,6 +93,7 @@ Miscellaneous tools
|
|||||||
* :ref:`i-pi <ipi>`
|
* :ref:`i-pi <ipi>`
|
||||||
* :ref:`kate <kate>`
|
* :ref:`kate <kate>`
|
||||||
* :ref:`LAMMPS shell <lammps_shell>`
|
* :ref:`LAMMPS shell <lammps_shell>`
|
||||||
|
* :ref:`LAMMPS GUI <lammps_gui>`
|
||||||
* :ref:`LAMMPS magic patterns for file(1) <magic>`
|
* :ref:`LAMMPS magic patterns for file(1) <magic>`
|
||||||
* :ref:`Offline build tool <offline>`
|
* :ref:`Offline build tool <offline>`
|
||||||
* :ref:`singularity/apptainer <singularity_tool>`
|
* :ref:`singularity/apptainer <singularity_tool>`
|
||||||
@ -634,6 +635,229 @@ you first need to use the :doc:`clear` command.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
.. _lammps_gui:
|
||||||
|
|
||||||
|
LAMMPS GUI
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. versionadded:: 2Aug2023
|
||||||
|
|
||||||
|
Overview
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
LAMMPS GUI is essentially a small graphical text editor that is linked
|
||||||
|
to the :ref:`LAMMPS C-library interface <lammps_c_api>` and thus can run
|
||||||
|
LAMMPS directly using the contents of the editor's text buffer as input.
|
||||||
|
This is similar to what people usually would do using a text editor to
|
||||||
|
edit the input and then a command line terminal window to run the input
|
||||||
|
commands. The main benefit is that this integrates very well with
|
||||||
|
graphical desktop environments and that it is easier to use for
|
||||||
|
beginners in running computations and thus very suitable for tutorials
|
||||||
|
on LAMMPS. A small difference is that for the LAMMPS GUI it is not
|
||||||
|
require to first commit its buffer of the text editor to a file.
|
||||||
|
|
||||||
|
Features
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
The main window of the LAMMPS GUI is a generic text editor window with
|
||||||
|
line numbers and syntax highlighting set up for LAMMPS input files. It
|
||||||
|
can be used to edit any kind of text file, though. The output of a run
|
||||||
|
is captured and displayed in a separate dialog window and *not* sent to
|
||||||
|
the console or a log file (unless the :doc:`log command <log>` is used
|
||||||
|
in the input. The log window is regularly updated during the run and a
|
||||||
|
progress bar for the run command shown at the bottom of the main window.
|
||||||
|
Starting a new run will open another log windows. The state of LAMMPS
|
||||||
|
will be reset between two runs. After the simulation is finished, an
|
||||||
|
image of the simulated system can be created and shown in an image
|
||||||
|
viewer window. Ongoing runs can be stopped at the next iteration via
|
||||||
|
triggering a timeout.
|
||||||
|
|
||||||
|
When opening a file, the editor will determine the directory where the
|
||||||
|
file resides and switch its current working directory to the folder of
|
||||||
|
that file. Many LAMMPS inputs contain commands that read other files,
|
||||||
|
typically from the folder of the input file. The GUI will always show
|
||||||
|
the current working directory in the bottom. The editor window can also
|
||||||
|
receive (entire) files via drag-n-drop from a file manager GUI or a
|
||||||
|
desktop environment. When exiting the GUI with a modified buffer, a
|
||||||
|
dialog asking to either cancel, ignore the modifications, or save the
|
||||||
|
file with show up. Same when attempting to load a new file into a
|
||||||
|
modified buffer.
|
||||||
|
|
||||||
|
Hotkeys
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
Almost all functionality is accessible from the menu or via hotkeys.
|
||||||
|
The following hotkeys are available (On macOS use the Command key
|
||||||
|
instead of Ctrl (aka Control)).
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:widths: auto
|
||||||
|
|
||||||
|
* - Hotkey
|
||||||
|
- Function
|
||||||
|
- Hotkey
|
||||||
|
- Function
|
||||||
|
- Hotkey
|
||||||
|
- Function
|
||||||
|
- Hotkey
|
||||||
|
- Function
|
||||||
|
* - Ctrl+N
|
||||||
|
- New File
|
||||||
|
- Ctrl+Z
|
||||||
|
- Undo edit
|
||||||
|
- Ctrl+V
|
||||||
|
- Paste text
|
||||||
|
- Ctrl+Q
|
||||||
|
- Quit (Main Window only)
|
||||||
|
* - Ctrl+O
|
||||||
|
- Open File
|
||||||
|
- Ctrl+Shift+Z
|
||||||
|
- Redo edit
|
||||||
|
- Ctrl+Enter
|
||||||
|
- Run LAMMPS
|
||||||
|
- Ctrl+W
|
||||||
|
- Close (Log and Image Window only)
|
||||||
|
* - CTRL+S
|
||||||
|
- Save File
|
||||||
|
- Ctrl+C
|
||||||
|
- Copy text
|
||||||
|
- Ctrl+/
|
||||||
|
- Stop Active Run
|
||||||
|
- Ctrl+P
|
||||||
|
- Preferences
|
||||||
|
* - Ctrl+Shift+S
|
||||||
|
- Save File As
|
||||||
|
- Ctrl+X
|
||||||
|
- Cut text
|
||||||
|
- Ctrl+I
|
||||||
|
- Create Snapshot Image
|
||||||
|
- Ctrl+Shift+/
|
||||||
|
- Quick Help
|
||||||
|
|
||||||
|
Further editing keybindings `are documented with the Qt documentation
|
||||||
|
<https://doc.qt.io/qt-5/qplaintextedit.html#editing-key-bindings>`_. In
|
||||||
|
case of conflicts the list above takes precedence.
|
||||||
|
|
||||||
|
Parallelization
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Due to its nature as a graphical application, it is not possible to use
|
||||||
|
the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading is
|
||||||
|
available and enabled by default.
|
||||||
|
|
||||||
|
Prerequisites and portability
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
LAMMPS GUI is programmed in C++ based on the C++11 standard and using
|
||||||
|
the `Qt GUI framework <https://www.qt.io/product/framework>`_.
|
||||||
|
Currently, Qt version 5.12 or later is required; Qt 5.15LTS is
|
||||||
|
recommended Qt 6.x not (yet) supported. Furthermore, CMake version 3.16
|
||||||
|
is required and LAMMPS must be configured with ``-D
|
||||||
|
LAMMPS_EXCETIONS=on`` and ``-D BUILD_MPI=off``. It has been successfully
|
||||||
|
compiled and tested on:
|
||||||
|
|
||||||
|
- Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12
|
||||||
|
- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16, Qt version 5.15LTS
|
||||||
|
- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS
|
||||||
|
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS
|
||||||
|
|
||||||
|
Pre-compiled executables
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Pre-compiled LAMMPS executables including the GUI are currently
|
||||||
|
available from https://download.lammps.org/static. You can unpack the
|
||||||
|
archive (or mount the macOS disk image) and run the GUI directly in
|
||||||
|
place. The folder may also be moved around and added to the ``PATH``
|
||||||
|
environment variable so the executables will be found automatically. The
|
||||||
|
LAMMPS GUI executable is called ``lammps-gui`` and takes no arguments or
|
||||||
|
will interpret the first argument as filename to load.
|
||||||
|
|
||||||
|
Compilation
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
The source for the LAMMPS GUI is included with the LAMMPS source code
|
||||||
|
distribution in the folder `tools/lammps-gui` and thus it can be can be
|
||||||
|
built as part of a regular LAMMPS compilation.
|
||||||
|
:doc:`Using CMake <Howto_cmake>` is required.
|
||||||
|
To enable its compilation the CMake variable ``-D BUILD_LAMMPS_GUI=on``
|
||||||
|
must be set when creating the CMake configuration. All other settings
|
||||||
|
(compiler, flags, compile type) for LAMMPS GUI are then inherited from
|
||||||
|
the regular LAMMPS build. If the Qt library is packaged for Linux
|
||||||
|
distributions, then its location is typically auto-detected since the
|
||||||
|
required CMake configuration files are stored in a location where CMake
|
||||||
|
can find them without additional help. Otherwise, the location of the
|
||||||
|
Qt library installation must be indicated by setting
|
||||||
|
``-D Qt5_DIR=/path/to/qt5/lib/cmake/Qt5``, which is a path to a folder inside
|
||||||
|
the Qt installation that contains the file ``Qt5Config.cmake``.
|
||||||
|
|
||||||
|
It is also possible to build the LAMMPS GUI as a standalone executable
|
||||||
|
(e.g. when LAMMPS has been compiled with traditional make), then the
|
||||||
|
CMake configuration needs to be told where to find the LAMMPS headers
|
||||||
|
and the LAMMPS library, via `-D LAMMPS_SOURCE_DIR=/path/to/lammps/src`.
|
||||||
|
CMake will try to guess a build folder with the LAMMPS library from that
|
||||||
|
path, but it can also be set with `-D LAMMPS_LIB_DIR=/path/to/lammps/lib`.
|
||||||
|
|
||||||
|
Rather than linking to the LAMMPS library during compilation, it is also
|
||||||
|
possible to compile the GUI with a plugin loader library that will load
|
||||||
|
the LAMMPS library dynamically at runtime during the start of the GUI
|
||||||
|
from a shared library; e.g. `liblammps.so` or `liblammps.dylib` or
|
||||||
|
`liblammps.dll` (depending on the operating system). This has the
|
||||||
|
advantage that the LAMMPS library can be updated LAMMPS without having
|
||||||
|
to recompile the GUI. The ABI of the LAMMPS C-library interface is very
|
||||||
|
stable and generally backward compatible. This feature is enabled by
|
||||||
|
setting ``-D LAMMPS_GUI_USE_PLUGIN=on`` and then
|
||||||
|
``-D LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this
|
||||||
|
would be the ``examples/COUPLE/plugin`` folder of the LAMMPS distribution.
|
||||||
|
|
||||||
|
Platform notes
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
macOS
|
||||||
|
"""""
|
||||||
|
|
||||||
|
When building on macOS, the build procedure will try to manufacture a
|
||||||
|
drag-n-drop installer, LAMMPS-macOS-multiarch.dmg, when using the 'dmg'
|
||||||
|
target (i.e. `cmake --build <build dir> --target dmg` or `make dmg`.
|
||||||
|
|
||||||
|
To build multi-arch executables that will run on both, arm64 and x86_64
|
||||||
|
architectures natively, it is necessary to set the CMake variable ``-D
|
||||||
|
CMAKE_OSX_ARCHITECTURES=arm64;x86_64``. To achieve wide compatibility
|
||||||
|
with different macOS versions, you can also set ``-D
|
||||||
|
CMAKE_OSX_DEPLOYMENT_TARGET=11.0`` which will set compatibility to macOS
|
||||||
|
11 (Big Sur) and later, even if you are compiling on a more recent macOS
|
||||||
|
version.
|
||||||
|
|
||||||
|
Windows
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
On Windows currently only compilation from within Visual Studio 2022 is
|
||||||
|
supported and tested. Using CMake and Ninja as build system is
|
||||||
|
required. Qt needs to be installed, tested was a package downloaded from
|
||||||
|
https://www.qt.io, into the ``C:\\Qt`` folder. There is a custom
|
||||||
|
`x64-GUI-MSVC` build configuration provided that will activate building
|
||||||
|
the `lammps-gui.exe` executable in addition to LAMMPS. When requesting
|
||||||
|
an installation from the `Build` menu, it will create a compressed zip
|
||||||
|
file with the executables and required dependent .dll files. This zip
|
||||||
|
file can be uncompressed and ``lammps-gui.exe`` run directly from there.
|
||||||
|
The uncompressed folder can be added to the ``PATH`` environment and
|
||||||
|
LAMMPS and LAMMPS GUI can be launched from anywhere from the command
|
||||||
|
line.
|
||||||
|
|
||||||
|
Linux
|
||||||
|
"""""
|
||||||
|
|
||||||
|
Version 5.12 or later of the Qt library and CMake version 3.16 are
|
||||||
|
required and those are provided by, e.g., Ubuntu 20.04LTS. Thus older
|
||||||
|
Linux distributions are not likely to be supported, while more recent
|
||||||
|
ones will work, even for pre-compiled executables (see above). After
|
||||||
|
compiling with ``cmake --build <build folder>``, use
|
||||||
|
``cmake --build <build folder> --target tgz`` or ``make tgz`` to build
|
||||||
|
a ``LAMMPS-Linux-amd64.tar.gz`` file with the executables and their
|
||||||
|
support libraries.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
.. _arc:
|
.. _arc:
|
||||||
|
|
||||||
lmp2arc tool
|
lmp2arc tool
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC add_molecule command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> add_molecule <small|large> <tag> <group-ID>
|
fix_modify <AtC fixID> add_molecule <small|large> <tag> <group-ID>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC add_species command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> add_species <tag> <group|type> <ID>
|
fix_modify <AtC fixID> add_species <tag> <group|type> <ID>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC atom_element_map command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> atom_element_map <eulerian|lagrangian> [<frequency>]
|
fix_modify <AtC fixID> atom_element_map <eulerian|lagrangian> [<frequency>]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC atom_weight command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> atom_weight <method> <args>
|
fix_modify <AtC fixID> atom_weight <method> <args>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC atomic_charge command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> <include|omit> atomic_charge
|
fix_modify <AtC fixID> <include|omit> atomic_charge
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC boundary_dynamics command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> boundary_dynamics <on|damped_harmonic|prescribed|coupled|none>
|
fix_modify <AtC fixID> boundary_dynamics <on|damped_harmonic|prescribed|coupled|none>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC boundary_faceset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> boundary_faceset <is|add> <faceset_name>
|
fix_modify <AtC fixID> boundary_faceset <is|add> <faceset_name>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC boundary type command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> boundary type <atom-type-id>
|
fix_modify <AtC fixID> boundary type <atom-type-id>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC consistent_fe_initialization command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> consistent_fe_initialization <on|off>
|
fix_modify <AtC fixID> consistent_fe_initialization <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC control localized_lambda command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> control localized_lambda <on|off>
|
fix_modify <AtC fixID> control localized_lambda <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC control momentum command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> control <physics_type> <solution_parameter> <value>
|
fix_modify <AtC fixID> control <physics_type> <solution_parameter> <value>
|
||||||
fix_modify AtC control momentum none
|
fix_modify AtC control momentum none
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC control thermal command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> control <physics_type> <solution_parameter> <value>
|
fix_modify <AtC fixID> control <physics_type> <solution_parameter> <value>
|
||||||
fix_modify <AtC fixID> control thermal <control_type> <optional_args>
|
fix_modify <AtC fixID> control thermal <control_type> <optional_args>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC decomposition command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> decomposition <type>
|
fix_modify <AtC fixID> decomposition <type>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC extrinsic electron_integration command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> extrinsic electron_integration <integration_type> [<num_subcycle_steps>]
|
fix_modify <AtC fixID> extrinsic electron_integration <integration_type> [<num_subcycle_steps>]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC equilibrium_start command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> equilibrium_start <on|off>
|
fix_modify <AtC fixID> equilibrium_start <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC extrinsic exchange command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> extrinsic exchange <on|off>
|
fix_modify <AtC fixID> extrinsic exchange <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC fe_md_boundary command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> fe_md_boundary <faceset|interpolate|no_boundary>
|
fix_modify <AtC fixID> fe_md_boundary <faceset|interpolate|no_boundary>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC filter scale command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> filter scale <scale>
|
fix_modify <AtC fixID> filter scale <scale>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC filter type command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> filter type <exponential|step|no_filter>
|
fix_modify <AtC fixID> filter type <exponential|step|no_filter>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC fix command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> fix <field> <nodeset> <constant|function>
|
fix_modify <AtC fixID> fix <field> <nodeset> <constant|function>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC fix_flux command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> fix_flux <field> <face_set> <value|function>
|
fix_modify <AtC fixID> fix_flux <field> <face_set> <value|function>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC computes command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> computes <add|delete> <per-atom compute-ID> <volume|number>
|
fix_modify <AtC fixID> computes <add|delete> <per-atom compute-ID> <volume|number>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC fields command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> fields <all|none>
|
fix_modify <AtC fixID> fields <all|none>
|
||||||
fix_modify <AtC fixID> fields <add|delete> <list_of_fields>
|
fix_modify <AtC fixID> fields <add|delete> <list_of_fields>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC gradients command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> gradients <add|delete> <list_of_fields>
|
fix_modify <AtC fixID> gradients <add|delete> <list_of_fields>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC kernel command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> kernel <type> <parameters>
|
fix_modify <AtC fixID> kernel <type> <parameters>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC on_the_fly command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> on_the_fly <bond|kernel> <on|off>
|
fix_modify <AtC fixID> on_the_fly <bond|kernel> <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC rates command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> rates <add|delete> <list_of_fields>
|
fix_modify <AtC fixID> rates <add|delete> <list_of_fields>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC initial command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> initial <field> <nodeset> <constant|function>
|
fix_modify <AtC fixID> initial <field> <nodeset> <constant|function>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC internal_element_set command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> internal_element_set <element_set_name>
|
fix_modify <AtC fixID> internal_element_set <element_set_name>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC internal_quadrature command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> internal_quadrature <on|off> [region]
|
fix_modify <AtC fixID> internal_quadrature <on|off> [region]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC kernel_bandwidth command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> kernel_bandwidth <value>
|
fix_modify <AtC fixID> kernel_bandwidth <value>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC control lumped_lambda_solve command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> control lumped_lambda_solve <on|off>
|
fix_modify <AtC fixID> control lumped_lambda_solve <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC control mask_direction command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> control mask_direction <direction> <on|off>
|
fix_modify <AtC fixID> control mask_direction <direction> <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mass_matrix command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mass_matrix <fe|md_fe>
|
fix_modify <AtC fixID> mass_matrix <fe|md_fe>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC material command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> material <elementset_name> <material_id>
|
fix_modify <AtC fixID> material <elementset_name> <material_id>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh add_to_nodeset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh add_to_nodeset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
fix_modify <AtC fixID> mesh add_to_nodeset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh create command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh create <nx> <ny> <nz> <region-ID> <f|p> <f|p> <f|p>
|
fix_modify <AtC fixID> mesh create <nx> <ny> <nz> <region-ID> <f|p> <f|p> <f|p>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh create_elementset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh create_elementset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
fix_modify <AtC fixID> mesh create_elementset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh create_faceset box command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh create_faceset <id> box <xmin> <xmax> <ymin> <ymax> <zmin> <zmax> <in|out> [units]
|
fix_modify <AtC fixID> mesh create_faceset <id> box <xmin> <xmax> <ymin> <ymax> <zmin> <zmax> <in|out> [units]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh create_faceset plane command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh create_faceset <id> plane <x|y|z> <val1> <x|y|z> <lval2> <uval2> [units]
|
fix_modify <AtC fixID> mesh create_faceset <id> plane <x|y|z> <val1> <x|y|z> <lval2> <uval2> [units]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh create_nodeset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh create_nodeset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
fix_modify <AtC fixID> mesh create_nodeset <id> <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh delete_elements command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh delete_elements <id>
|
fix_modify <AtC fixID> mesh delete_elements <id>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh nodeset_to_elementset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh nodeset_to_elementset <nodeset_id> <elementset_id> <max/min>
|
fix_modify <AtC fixID> mesh nodeset_to_elementset <nodeset_id> <elementset_id> <max/min>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh output command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh output <file_prefix>
|
fix_modify <AtC fixID> mesh output <file_prefix>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh quadrature command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh quatrature <quad>
|
fix_modify <AtC fixID> mesh quatrature <quad>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh read command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh read <f|p> <f|p> <f|p>
|
fix_modify <AtC fixID> mesh read <f|p> <f|p> <f|p>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC mesh write command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> mesh write <f|p> <f|p> <f|p>
|
fix_modify <AtC fixID> mesh write <f|p> <f|p> <f|p>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC output command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> output <filename_prefix> <frequency> [text|full_text|binary|vector_components|tensor_components]
|
fix_modify <AtC fixID> output <filename_prefix> <frequency> [text|full_text|binary|vector_components|tensor_components]
|
||||||
fix_modify <AtC fixID> output index [step|time]
|
fix_modify <AtC fixID> output index [step|time]
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC output boundary_integral command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> output boundary_integral <fieldname> faceset [name]
|
fix_modify <AtC fixID> output boundary_integral <fieldname> faceset [name]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC output contour_integral command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> output contour_integral <fieldname> faceset <name> [axis [x|y|z]]
|
fix_modify <AtC fixID> output contour_integral <fieldname> faceset <name> [axis [x|y|z]]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC output nodeset command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> output nodeset <nodeset_name> <operation>
|
fix_modify <AtC fixID> output nodeset <nodeset_name> <operation>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC output volume_integral command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> output volume_integral <elementset_name> <field>
|
fix_modify <AtC fixID> output volume_integral <elementset_name> <field>
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ fix_modify AtC bond_interactions command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> pair_interactions <on|off>
|
fix_modify <AtC fixID> pair_interactions <on|off>
|
||||||
fix_modify <AtC fixID> bond_interactions <on|off>
|
fix_modify <AtC fixID> bond_interactions <on|off>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC poisson_solver command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> poisson_solver mesh create <nx> <ny> <nz> <region-ID> <f|p> <f|p> <f|p>
|
fix_modify <AtC fixID> poisson_solver mesh create <nx> <ny> <nz> <region-ID> <f|p> <f|p> <f|p>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC read_restart command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> read_restart <file_name>
|
fix_modify <AtC fixID> read_restart <file_name>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC remove_molecule command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> remove_molecule <tag>
|
fix_modify <AtC fixID> remove_molecule <tag>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC remove_source command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> remove_source <field> <element_set>
|
fix_modify <AtC fixID> remove_source <field> <element_set>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC remove_species command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> remove_species <tag>
|
fix_modify <AtC fixID> remove_species <tag>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC reset_atomic_reference_positions command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> reset_atomic_reference_positions
|
fix_modify <AtC fixID> reset_atomic_reference_positions
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC reset_time command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> reset_time <value>
|
fix_modify <AtC fixID> reset_time <value>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC sample_frequency command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> sample_frequency <freq>
|
fix_modify <AtC fixID> sample_frequency <freq>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC set reference_potential_energy command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> set reference_potential_energy [<value|filename>]
|
fix_modify <AtC fixID> set reference_potential_energy [<value|filename>]
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC source command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> source <field> <element_set> <value|function>
|
fix_modify <AtC fixID> source <field> <element_set> <value|function>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC source_integration command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> source_integration <fe|atom>
|
fix_modify <AtC fixID> source_integration <fe|atom>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC temperature_definition command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> temperature_definition <kinetic|total>
|
fix_modify <AtC fixID> temperature_definition <kinetic|total>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC filter command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> filter <on|off|equilibrate>
|
fix_modify <AtC fixID> filter <on|off|equilibrate>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC time_integration command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> time_integration <descriptor>
|
fix_modify <AtC fixID> time_integration <descriptor>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC track_displacement command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> track_displacement <on|off>
|
fix_modify <AtC fixID> track_displacement <on|off>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC unfix command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> unfix <field> <nodeset>
|
fix_modify <AtC fixID> unfix <field> <nodeset>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix_modify AtC unfix_flux command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix_modify <AtC fixID> unfix_flux <field> <face_set> <value|function>
|
fix_modify <AtC fixID> unfix_flux <field> <face_set> <value|function>
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user