From a7e91c79b5402c28152ac54f9c3875fa60633c9e Mon Sep 17 00:00:00 2001 From: Achim Gsell <achim.gsell@psi.ch> Date: Fri, 6 Apr 2018 17:45:34 +0200 Subject: [PATCH] review of master CMakeList.txt and CMakeList.txt of OPAL and IPPL plus required changes in the source code --- CMakeLists.txt | 22 +- ippl/CMakeLists.txt | 323 ++---------------------- ippl/src/CMakeLists.txt | 50 ++-- ippl/src/IpplVersions.h.in | 2 +- ippl/src/config.h.in | 23 -- ippl/test/AMR/trilinos/AmrMultiGrid.cpp | 2 +- src/Algorithms/IndexMap.cpp | 2 +- src/Algorithms/StatisticalErrors.cpp | 4 +- src/BasicActions/Save.cpp | 6 +- src/CMakeLists.txt | 3 +- src/Classic/Structure/LossDataSink.cpp | 4 +- src/Main.cpp | 6 +- src/Solvers/AMR_MG/AmrMultiGrid.cpp | 2 +- src/Structure/DataSink.cpp | 10 +- src/Structure/H5PartWrapperForPC.cpp | 4 +- src/Structure/H5PartWrapperForPS.cpp | 4 +- src/Structure/H5PartWrapperForPT.cpp | 4 +- src/Track/TrackRun.cpp | 2 +- src/ValueDefinitions/RealConstant.cpp | 6 +- src/config.h.in | 25 +- 20 files changed, 98 insertions(+), 406 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e11d6520..2a9f174c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,13 @@ cmake_minimum_required (VERSION 3.1) -project (OPAL) -set (OPAL_VERSION_MAJOR 1) -SET (OPAL_VERSION_MINOR 9.0) -set (PACKAGE \"opal\") -set (PACKAGE_BUGREPORT \"opal@lists.psi.ch\") -set (PACKAGE_NAME \"OPAL\") -set (PACKAGE_TARNAME \"opal\") -set (PACKAGE_VERSION "${OPAL_VERSION_MAJOR}.${OPAL_VERSION_MINOR}") -set (PACKAGE_VERSION_STR "\"${PACKAGE_VERSION}\"") -string (REGEX REPLACE "\\.([0-9])\\." ".0\\1." PACKAGE_VERSION ${PACKAGE_VERSION}) +project (OPAL VERSION 1.9.0) +set (PROJECT_BUGREPORT opal@lists.psi.ch) + +string (REGEX REPLACE "\\.([0-9])\\." ".0\\1." PACKAGE_VERSION ${PROJECT_VERSION}) string (REGEX REPLACE "\\.([0-9])$" ".0\\1" PACKAGE_VERSION ${PACKAGE_VERSION}) string (REGEX REPLACE "\\." "" PACKAGE_VERSION ${PACKAGE_VERSION}) +message (PACKAGE_VERSION=${PACKAGE_VERSION}) + if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." @@ -46,6 +42,10 @@ set (CMAKE_CXX_STANDARD_REQUIRED ON) set (CMAKE_CXX_EXTENSIONS OFF) add_compile_options (-Wall) +add_definitions (-DIPPL_LINUX -DIPPL_STRINGSTREAM) +add_definitions (-DIPPL_MPI -DMPICH_SKIP_MPICXX -DIPPL_DONT_POOL -DIPPL_USE_XDIV_RNG -DPETE_BITWISE_COPY -DIPPL_HAS_TEMPLATED_COMPLEX -DIPPL_USE_PARTIAL_SPECIALIZATION -Drestrict=__restrict__ -DNOCTAssert) + +add_compile_options (-ftemplate-depth=1024 -funroll-loops -fstrict-aliasing) # compiler dependent flags if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" ) @@ -228,8 +228,6 @@ else () set (OPAL_WC_REVISION \"\") endif () -set (IPPL_USED_FROM_OPAL "TRUE") - add_subdirectory (ippl) add_subdirectory (optimizer) add_subdirectory (src) diff --git a/ippl/CMakeLists.txt b/ippl/CMakeLists.txt index a222325e9..5323dba87 100644 --- a/ippl/CMakeLists.txt +++ b/ippl/CMakeLists.txt @@ -1,311 +1,34 @@ -IF (NOT IPPL_USED_FROM_OPAL) -CMAKE_MINIMUM_REQUIRED (VERSION 2.8.10) -PROJECT (IPPL) -SET (IPPL_VERSION_MAJOR 1) -SET (IPPL_VERSION_MINOR 5.00.1) +project (IPPL CXX) +set (IPPL_VERSION_MAJOR 1) +set (IPPL_VERSION_MINOR 1.4) -IF (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) - SET (CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING - "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." - FORCE - ) -ENDIF (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) +set (IPPL_VERSION_NAME "V${IPPL_VERSION_MAJOR}.${IPPL_VERSION_MINOR}") -MESSAGE (STATUS "Build type is: " ${CMAKE_BUILD_TYPE}) +set (IPPL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -# Select flags. -SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g ") -SET (CMAKE_CXX_FLAGS_RELEASE "-O3") -SET (CMAKE_CXX_FLAGS_DEBUG "-O0 -g") - -# Resolve all library dependencies -SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules") - -find_package (MPI REQUIRED) -message (STATUS "The C++ compiler identification is: ${CMAKE_CXX_COMPILER_ID}") -message (STATUS "The C++ compiler version is: ${CMAKE_CXX_COMPILER_VERSION}") -message (STATUS "The MPI C++ compiler is: ${MPI_CXX_COMPILER}") -message (STATUS "The underlying C++ compiler is: ${CMAKE_CXX_COMPILER}") - -# compiler dependent flags -if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -diag-disable 383 -diag-disable 981 -std=c++11") - -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wsign-compare -Wunused-variable -Warray-bounds -DIPPL_RESTRICT_BUG") - -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "4.7.3") - message (FATAL_ERROR "To build OPAL you need GCC version 4.7.3 or greater") - elseif (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER "4.7.2") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-reorder -Wno-unused-local-typedefs -std=c++11") - endif () +if (${CMAKE_BUILD_TYPE} STREQUAL "Release") + add_definitions (-DNOPAssert) else () - message (STATUS "Unknown C++ compiler. Please use the GNU or Intel compiler, IF you are having problems.") -endif () - -FIND_PACKAGE (H5Hut REQUIRED) -FIND_PACKAGE (HDF5 REQUIRED) -FIND_PACKAGE (GSL REQUIRED) - -set (BOOSTROOT $ENV{BOOST_DIR}) -set(Boost_USE_STATIC_LIBS ON) -set(Boost_USE_MULTITHREADED OFF) -set(Boost_USE_STATIC_RUNTIME OFF) -find_package (Boost 1.55.0 REQUIRED COMPONENTS regex filesystem system) -if (Boost_INCLUDE_DIRS) - message (STATUS "Found boost include dir: ${Boost_INCLUDE_DIR}") - message (STATUS "Found boost library dir: ${Boost_LIBRARY_DIR}") - message (STATUS "Found boost libraries: ${Boost_LIBRARIES}") - include_directories (${Boost_INCLUDE_DIRS}) + add_definitions (-DIPPL_DEBUG) endif () +set (IPPL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" PARENT_SCOPE) +set (IPPL_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" PARENT_SCOPE) +set (IPPL_LIBRARY "ippl" PARENT_SCOPE) -### Uldis Locans 2014.09.05 ### -#OPTION (ENABLE_DKS "Enable DKS" OFF) - -### Load DKS package ### -IF (ENABLE_DKS) - #FIND_PACKAGE(DKS 1.1.0 REQUIRED HINTS $ENV{DKS_PREFIX} $ENV{DKS_DIR} $ENV{DKS}) - #MESSAGE (STATUS "Found DKS library: ${DKS_LIBRARY}") - #MESSAGE (STATUS "Found DKS include dir: ${DKS_INCLUDE_DIR}") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDKS_MPI") - - ### OpenCL compiler flags ### - #SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lOpenCL -pthread -DDKS_OPENCL") - - ### CUDA compiler flags ### - #SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lcudart -lcufft -lcublas -DDKS_CUDA") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDKS_CUDA") - - ### if any accelerator enabled set flag to use DKS ### - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIPPL_DKS -DIPPL_DKS_CUDA -DOPAL_DKS") -ENDIF (ENABLE_DKS) -### END DKS part ### - -# Handle options -OPTION (ENABLE_AMR "Enable BoxLib based AMR solver" OFF) -#OPTION (ENABLE_SAAMG_SOLVER "Enable iterative SA-AMG-PCG self field solver" OFF) - -IF (ENABLE_AMR) - MESSAGE (STATUS "Enable AMR_SOLVER " ${ENABLE_AMR}) - - find_package (AMReX CONFIG REQUIRED HINTS $ENV{AMREX_HOME}/cmake $ENV{AMREX_DIR}/cmake $ENV{AMREX_PREFIX}/cmake) - - MESSAGE (STATUS "Found AMReX include dir: ${AMREX_INCLUDE_DIR}") - MESSAGE (STATUS "Found AMReX library dir: ${AMREX_LIBRARY_DIR}") - MESSAGE (STATUS "Found AMReX libraries: ${AMREX_LIBRARIES}") - - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_AMR") - -ENDIF (ENABLE_AMR) - -#if (ENABLE_SAAMG_SOLVER) -# find_package (Trilinos REQUIRED HINTS $ENV{TRILINOS_PREFIX} $ENV{TRILINOS_DIR} $ENV{TRILINOS}) -# -# message (STATUS "Found Trilinos: ${Trilinos_DIR}") -# message (STATUS " Trilinos version: ${Trilinos_VERSION}") -# message (STATUS " Trilinos package list: ${Trilinos_PACKAGE_LIST}") -# message (STATUS " Trilinos libraries: ${Trilinos_LIBRARIES}") -# message (STATUS " Trilinos TPL libraries: ${Trilinos_TPL_LIBRARIES}") -# -# if (NOT ${MPI_CXX_COMPILER} STREQUAL ${Trilinos_CXX_COMPILER} ) -# message (STATUS "Compiler mismatch:") -# message (STATUS " Trilinos was compiled with:") -# message (STATUS " ${Trilinos_C_COMPILER}") -# message (STATUS " ${Trilinos_CXX_COMPILER}") -# message (STATUS " ${Trilinos_Fortran_COMPILER}") -# message (STATUS " You are using:") -# message (STATUS " ${CMAKE_C_COMPILER}") -# message (STATUS " ${CMAKE_CXX_COMPILER}") -# message (STATUS " ${CMAKE_Fortran_COMPILER}") -# message (FATAL "") -# endif () -#endif () - -INCLUDE(FindGit) -IF(GIT_FOUND) - SET (OPAL_WC_REVISION 0) - EXECUTE_PROCESS( - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMAND git rev-parse HEAD - OUTPUT_VARIABLE GIT_OUT OUTPUT_STRIP_TRAILING_WHITESPACE - ) - SET (OPAL_WC_REVISION \"${GIT_OUT}\") -ELSE() - MESSAGE (STATUS "could not find git") - SET (OPAL_WC_REVISION \"\") -ENDIF() - -SET (IPPL_USED_FROM_OPAL "TRUE") -ADD_SUBDIRECTORY (ippl) -#ADD_SUBDIRECTORY (classic/5.0/src) -#ADD_SUBDIRECTORY (src) - -IF (BUILD_OPAL_UNIT_TESTS) - ADD_SUBDIRECTORY(tests) -ENDIF (BUILD_OPAL_UNIT_TESTS) - -ELSE(NOT IPPL_USED_FROM_OPAL) - PROJECT (IPPL CXX) - SET (IPPL_VERSION_MAJOR 1) - SET (IPPL_VERSION_MINOR 1.4) - SET (PACKAGE \"ippl\") - SET (PACKAGE_BUGREPORT \"andreas.adelmann@psi.ch\") - SET (PACKAGE_NAME \"IPPL\") - SET (PACKAGE_STRING \"IPPL\ 1.1.4\") - SET (PACKAGE_TARNAME \"ippl\") - SET (PACKAGE_VERSION \"1.1.4\") - SET (VERSION \"1.1.4\") - - set (IPPL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - - OPTION (LINUXGCC "Use Linux GCC flags" ON) - OPTION (LINUXPGI "Use Linux PGI flags" OFF) - - SET (CMAKE_CXX_COMPILER ${MPI_COMPILER}) - - SET (IPPL_CXX_FLAGS "") - SET (OTHER_CXX_FLAGS "") - - IF (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) - SET (CMAKE_BUILD_TYPE RelWithDebInfo) +add_subdirectory (src) +option (ENABLE_IPPLTESTS "IPPL Tests" OFF) +if (ENABLE_IPPLTESTS) + add_subdirectory (test) +endif () +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake ) - ENDIF (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) - - ### CXX_FLAGS specific to build type ######################## -IF (${CMAKE_BUILD_TYPE} STREQUAL "Release") - SET (OTHER_CXX_FLAGS - "-DNOPAssert ${OTHER_CXX_FLAGS}" - ) -ELSE (${CMAKE_BUILD_TYPE} STREQUAL "Release") - SET (OTHER_CXX_FLAGS - "-DIPPL_DEBUG ${OTHER_CXX_FLAGS}" - ) -ENDIF (${CMAKE_BUILD_TYPE} STREQUAL "Release") - - - - - - -### CXX_FLAGS common to all compilers and platforms which ### -### may be written to the configure file ### -SET (IPPL_CXX_FLAGS - "-DIPPL_MPI -DMPICH_SKIP_MPICXX -DIPPL_DONT_POOL -DIPPL_USE_XDIV_RNG -DPETE_BITWISE_COPY -DIPPL_HAS_TEMPLATED_COMPLEX -DIPPL_USE_PARTIAL_SPECIALIZATION -Drestrict=__restrict__ -DNOCTAssert ${IPPL_CXX_FLAGS}" - ) - -### CXX_FLAGS common to all compilers and platforms which ### -### may *not* be written to the configure file ### -SET (OTHER_CXX_FLAGS - "-Wall ${OTHER_CXX_FLAGS}" - ) - -### Uldis Locans 2014.09.05 ### -#OPTION (ENABLE_DKS "Enable DKS" OFF) - -### Load DKS package ### -IF (ENABLE_DKS) - #FIND_PACKAGE(DKS 1.1.0 REQUIRED HINTS $ENV{DKS_PREFIX} $ENV{DKS_DIR} $ENV{DKS}) - #MESSAGE (STATUS "Found DKS library: ${DKS_LIBRARY_DIR}") - #MESSAGE (STATUS "Found DKS include dir: ${DKS_INCLUDE_DIR}") - SET (IPPL_CXX_FLAGS "${IPPL_CXX_FLAGS} -DDKS_MPI") - - ### OpenCL compiler flags ### - #SET (IPPL_CXX_FLAGS "${IPPL_CXX_FLAGS} -lOpenCL -lpthread -DDKS_OPENCL") - ### End OpenCL ### - - ### CUDA compiler flags ### - #SET (IPPL_CXX_FLAGS "${IPPL_CXX_FLAGS} -lcudart -lcufft -lcublas -lnvToolsExt -DDKS_CUDA") - SET (IPPL_CXX_FLAGS "${IPPL_CXX_FLAGS} -DDKS_CUDA") - ### End Cuda ### - - ### if any accelerator enabled set flag to use DKS ### - SET (IPPL_CXX_FLAGS "${IPPL_CXX_FLAGS} -DIPPL_DKS") -ENDIF (ENABLE_DKS) - -### CXX_FLAGS specific to compiler and platform ############# -#find_package (MPI REQUIRED) -message (STATUS "The C++ compiler identification is: ${CMAKE_CXX_COMPILER_ID}") -message (STATUS "The C++ compiler version is: ${CMAKE_CXX_COMPILER_VERSION}") -message (STATUS "The MPI C++ compiler is: ${MPI_CXX_COMPILER}") -message (STATUS "The underlying C++ compiler is: ${CMAKE_CXX_COMPILER}") - -IF (LINUXGCC) - MESSAGE (STATUS "Linux GCC flags SET") - SET (IPPL_CXX_FLAGS - "-DIPPL_LINUX -DIPPL_STRINGSTREAM ${IPPL_CXX_FLAGS}" - ) - SET (OTHER_CXX_FLAGS - "-ftemplate-depth-80 -funroll-loops -fstrict-aliasing ${OTHER_CXX_FLAGS}" - ) - - IF (NOT IPPL_USED_FROM_OPAL) - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - SET (OTHER_CXX_FLAGS - "-std=c++0x -diag-disable 383,981 ${OTHER_CXX_FLAGS}") - - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - SET (OTHER_CXX_FLAGS - "-Wall -Wsign-compare -Wunused-variable -Warray-bounds -DIPPL_RESTRICT_BUG ${OTHER_CXX_FLAGS}") - - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - IF (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "4.8.0") - SET (OTHER_CXX_FLAGS - "-Wall -std=c++0x") - - ELSEIF (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER "4.7") - SET (OTHER_CXX_FLAGS - "-Wall -Wno-reorder -std=c++1y") - ENDIF () - ELSE ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - # using unknown compiler - MESSAGE (STATUS "${COMPILER_NAME} is using a compiler (${CMAKE_CXX_COMPILER_ID}) we were not thinking of! - Please use the gnu compiler or the intel compiler if you are having problems.") - ENDIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - ENDIF (NOT IPPL_USED_FROM_OPAL) - SET (IPPL_VERSION_NAME "\"V${IPPL_VERSION_MAJOR}.${IPPL_VERSION_MINOR} Linux GNU\"") - ENDIF (LINUXGCC) - - IF (LINUXPGI) - MESSAGE(STATUS "Linux PGI flags SET") - SET (IPPL_CXX_FLAGS - "-DIPPLProf -DIPPL_GPLUSPLUS -DMPICH_IGNORE_CXX_SEEK -DIPPL_LINUX ${IPPL_CXX_FLAGS}" - ) - SET (IPPL_VERSION_NAME "\"V${IPPL_VERSION_MAJOR}.${IPPL_VERSION_MINOR} Linux PGI\"") - ENDIF (LINUXPGI) - - SET (IPPLLINUXGCCF - "-DIPPL_LINUX -DIPPL_STRINGSTREAM" - ) - - SET (CMAKE_CXX_FLAGS - "${OTHER_CXX_FLAGS} ${IPPL_CXX_FLAGS} ${CMAKE_CXX_FLAGS} " - ) - - SET (IPPL_CMAKE_CXX_FLAGS "${IPPL_CXX_FLAGS}" PARENT_SCOPE) - SET (IPPL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" PARENT_SCOPE) - SET (IPPL_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" PARENT_SCOPE) - SET (IPPL_LIBRARY "ippl" PARENT_SCOPE) - - ### add test directories #################################### - ADD_SUBDIRECTORY (src) - OPTION (ENABLE_IPPLTESTS "IPPL Tests" OFF) - IF (ENABLE_IPPLTESTS) - ADD_SUBDIRECTORY (test) - ENDIF (ENABLE_IPPLTESTS) - - ### write configure file #################################### - CONFIGURE_FILE ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake ) - - ### install files ########################################### - INSTALL ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake - DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME}" - RENAME ${PROJECT_NAME}Config.cmake - ) +install ( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME}" + RENAME ${PROJECT_NAME}Config.cmake + ) -ENDIF (NOT IPPL_USED_FROM_OPAL) diff --git a/ippl/src/CMakeLists.txt b/ippl/src/CMakeLists.txt index d52ed7361..426045d7f 100644 --- a/ippl/src/CMakeLists.txt +++ b/ippl/src/CMakeLists.txt @@ -46,39 +46,37 @@ STRING (REGEX REPLACE " +" ";" COMPILE_FLAGS_LIST ${COMPILE_FLAGS_STR}) LIST (LENGTH COMPILE_FLAGS_LIST NUMBER_OF_COMPILE_FLAGS) SET (CURRENT_FLAG_INDEX 0) -MESSAGE (STATUS "") -MESSAGE (STATUS "Building IPPL with:") -WHILE (${CURRENT_FLAG_INDEX} LESS ${NUMBER_OF_COMPILE_FLAGS}) +if (UNUSED) + MESSAGE (STATUS "") + MESSAGE (STATUS "Building IPPL with:") + WHILE (${CURRENT_FLAG_INDEX} LESS ${NUMBER_OF_COMPILE_FLAGS}) SET (FLAGS_PRETTY_PRINT "") - + LIST (GET COMPILE_FLAGS_LIST ${CURRENT_FLAG_INDEX} CURRENT_FLAG) STRING (LENGTH ${CURRENT_FLAG} LENGTH_INCL_NEXT) - + WHILE (${LENGTH_INCL_NEXT} LESS ${PRETTY_PRINT_WIDTH}) - SET (FLAGS_PRETTY_PRINT - "${FLAGS_PRETTY_PRINT} ${CURRENT_FLAG}") - - MATH (EXPR CURRENT_FLAG_INDEX "(${CURRENT_FLAG_INDEX} + 1)") - - IF (${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) - SET (LENGTH_INCL_NEXT ${PRETTY_PRINT_WIDTH}) - ELSE(${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) - LIST (GET COMPILE_FLAGS_LIST ${CURRENT_FLAG_INDEX} CURRENT_FLAG) - IF (CURRENT_FLAG) - STRING (LENGTH ${CURRENT_FLAG} LENGTH_CURRENT_FLAG) - MATH (EXPR LENGTH_INCL_NEXT "${LENGTH_INCL_NEXT} + 1 + ${LENGTH_CURRENT_FLAG}") - ENDIF (CURRENT_FLAG) - ENDIF(${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) - + SET (FLAGS_PRETTY_PRINT + "${FLAGS_PRETTY_PRINT} ${CURRENT_FLAG}") + + MATH (EXPR CURRENT_FLAG_INDEX "(${CURRENT_FLAG_INDEX} + 1)") + + IF (${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) + SET (LENGTH_INCL_NEXT ${PRETTY_PRINT_WIDTH}) + ELSE(${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) + LIST (GET COMPILE_FLAGS_LIST ${CURRENT_FLAG_INDEX} CURRENT_FLAG) + IF (CURRENT_FLAG) + STRING (LENGTH ${CURRENT_FLAG} LENGTH_CURRENT_FLAG) + MATH (EXPR LENGTH_INCL_NEXT "${LENGTH_INCL_NEXT} + 1 + ${LENGTH_CURRENT_FLAG}") + ENDIF (CURRENT_FLAG) + ENDIF(${CURRENT_FLAG_INDEX} EQUAL ${NUMBER_OF_COMPILE_FLAGS}) + ENDWHILE (${LENGTH_INCL_NEXT} LESS ${PRETTY_PRINT_WIDTH}) STRING (STRIP ${FLAGS_PRETTY_PRINT} FLAGS_PRETTY_PRINT) MESSAGE (STATUS "${FLAGS_PRETTY_PRINT}") -ENDWHILE() -MESSAGE (STATUS "") - -SET (IPPL_SRCS_FORT -# FFT/fftpack.F - ) + ENDWHILE() + MESSAGE (STATUS "") +endif () SET (IPPL_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) MACRO (ADD_IPPL_SOURCES ) diff --git a/ippl/src/IpplVersions.h.in b/ippl/src/IpplVersions.h.in index 4bd12a6a6..e29bf6c25 100644 --- a/ippl/src/IpplVersions.h.in +++ b/ippl/src/IpplVersions.h.in @@ -4,7 +4,7 @@ #ifndef IPPL_VERSIONS_H #define IPPL_VERSIONS_H -const char *ippl_version_name = ${IPPL_VERSION_NAME}; +const char *ippl_version_name = "${IPPL_VERSION_NAME}"; const char *ippl_compile_arch = ${IPPL_COMPILE_ARCH}; const char *ippl_compile_line = ${IPPL_COMPILE_LINE}; const char *ippl_compile_date = ${IPPL_COMPILE_DATE}; diff --git a/ippl/src/config.h.in b/ippl/src/config.h.in index 9ec6608ba..1f0930c31 100644 --- a/ippl/src/config.h.in +++ b/ippl/src/config.h.in @@ -1,26 +1,3 @@ -/* Name of package */ -//#define PACKAGE ${PACKAGE} - -/* Define to the address where bug reports for this package should be sent. */ -//#define PACKAGE_BUGREPORT ${PACKAGE_BUGREPORT} - -/* Define to the full name of this package. */ -//#define PACKAGE_NAME ${PACKAGE_NAME} - -/* Define to the one symbol short name of this package. */ -//#define PACKAGE_TARNAME ${PACKAGE_TARNAME} - -/* Define to the version of this package. */ -//#define PACKAGE_VERSION ${PACKAGE_VERSION} - -/* repository svn version */ -//#define SVN_VERSION ${OPAL_WC_REVISION} - -/*#define GIT_VERSION ${GIT_VERSION}*/ - -/* Version number of package */ -//#define VERSION ${VERSION} - /* OPAL version number */ #define IPPL_OPAL_VERSION ${OPAL_PACKAGE_VERSION} diff --git a/ippl/test/AMR/trilinos/AmrMultiGrid.cpp b/ippl/test/AMR/trilinos/AmrMultiGrid.cpp index 88cf19a99..aa2d858d9 100644 --- a/ippl/test/AMR/trilinos/AmrMultiGrid.cpp +++ b/ippl/test/AMR/trilinos/AmrMultiGrid.cpp @@ -2114,7 +2114,7 @@ void AmrMultiGrid::writeSDDSHeader_m(std::ofstream& outfile) { << indent << "no_row_counts=1\n" << "&end\n" << Ippl::getNodes() << '\n' - << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << '\n' + << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << '\n' << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; */ diff --git a/src/Algorithms/IndexMap.cpp b/src/Algorithms/IndexMap.cpp index 31ef44020..c2120e153 100644 --- a/src/Algorithms/IndexMap.cpp +++ b/src/Algorithms/IndexMap.cpp @@ -219,7 +219,7 @@ void IndexMap::saveSDDS(double startS) const { << indent << "no_row_counts=1 \n" << "&end\n"; - sdds << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision() << std::endl; + sdds << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision() << std::endl; } std::vector<std::vector<int> > allItems(SIZE); diff --git a/src/Algorithms/StatisticalErrors.cpp b/src/Algorithms/StatisticalErrors.cpp index f7bc62a7b..8b658aa25 100644 --- a/src/Algorithms/StatisticalErrors.cpp +++ b/src/Algorithms/StatisticalErrors.cpp @@ -651,7 +651,7 @@ void StatisticalErrors::writeSDDSData(std::ofstream &out, const std::map<std::string, std::vector<double> > &data, const std::vector<std::string> &order) { out << Ippl::getNodes() << "\n" - << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision() << std::endl; + << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision() << std::endl; size_t sizeData = data.find("s")->second.size(); size_t numColumns = order.size(); @@ -1074,4 +1074,4 @@ std::pair<int, int> StatisticalErrors::getNextObjectiveToProcess(int tag, char * memcpy(reinterpret_cast<char*>(&nextJob.second), messageBuffer + sizeof(int), sizeof(int)); return nextJob; -} \ No newline at end of file +} diff --git a/src/BasicActions/Save.cpp b/src/BasicActions/Save.cpp index e496838e7..3a23a96df 100644 --- a/src/BasicActions/Save.cpp +++ b/src/BasicActions/Save.cpp @@ -163,7 +163,7 @@ void Save::execute() { std::string comchar = "// "; - os << comchar << "<OPAL Version " << OPAL_VERSION_STR << " GIT version " + os << comchar << "<OPAL Version " << OPAL_PROJECT_VERSION << " GIT version " << Util::getGitRevision() << " (c) PSI, http://amas.web.psi.ch" << std::endl << ";" << std::endl ; @@ -188,7 +188,7 @@ void Save::execute() { os << comchar << "</Special definitions> ;" << std::endl << ";" << std::endl ; - os << comchar << "<OPAL Version " << OPAL_VERSION_STR << " GIT version " + os << comchar << "<OPAL Version " << OPAL_PROJECT_VERSION << " GIT version " << Util::getGitRevision() << " (c) PSI, http://amas.web.psi.ch" << std::endl << ";" << std::endl ; } @@ -197,4 +197,4 @@ void Save::execute() { void Save::parse(Statement &statement) { parseShortcut(statement); -} \ No newline at end of file +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5636e7f57..b94a387c0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ set (DKS_VERSION_OPAL \"${DKS_VERSION}\") -set (CMAKE_CXX_FLAGS +add_definitions ( "${IPPL_CMAKE_CXX_FLAGS} -DPARALLEL_IO ${CMAKE_CXX_FLAGS}" ) @@ -38,7 +38,6 @@ else (ENABLE_AMR AND ENABLE_AMR_MG_SOLVER) set (AMR_MG_SOLVER_LIBS "") endif(ENABLE_AMR AND ENABLE_AMR_MG_SOLVER) -set (PACKAGE_COMPILE_OPTIONS \"${CMAKE_CXX_FLAGS}\") configure_file(config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/OPALconfig.h) configure_file(revision.h.in ${CMAKE_CURRENT_SOURCE_DIR}/OPALrevision.h) diff --git a/src/Classic/Structure/LossDataSink.cpp b/src/Classic/Structure/LossDataSink.cpp index 38b84d3c8..c0139c609 100644 --- a/src/Classic/Structure/LossDataSink.cpp +++ b/src/Classic/Structure/LossDataSink.cpp @@ -172,7 +172,7 @@ void LossDataSink::writeHeaderH5() { // Write file attributes to describe phase space to H5 file. std::stringstream OPAL_version; - OPAL_version << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision(); + OPAL_version << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision(); WRITE_FILEATTRIB_STRING ("OPAL_version", OPAL_version.str().c_str()); WRITE_FILEATTRIB_STRING ("tUnit", "s"); WRITE_FILEATTRIB_STRING ("xUnit", "m"); @@ -910,7 +910,7 @@ void LossDataSink::writeStatistics() { << indent << "no_row_counts=1\n" << "&end\n"; - statOut << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. " << Util::getGitRevision() << std::endl; + statOut << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. " << Util::getGitRevision() << std::endl; } for (auto entry: statFileEntries_s) { diff --git a/src/Main.cpp b/src/Main.cpp index 3929f4d07..158e27dc8 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -126,7 +126,7 @@ int main(int argc, char *argv[]) { *gmsg << endl - << "This is OPAL (Object Oriented Parallel Accelerator Library) Version " << OPAL_VERSION_STR << "\n\n" + << "This is OPAL (Object Oriented Parallel Accelerator Library) Version " << OPAL_PROJECT_VERSION << "\n\n" << " (c) PSI, http://amas.web.psi.ch" << endl << "The optimiser (former opt-Pilot) is integrated " << endl << endl; @@ -238,11 +238,11 @@ int main(int argc, char *argv[]) { continue; } else if (argStr == std::string("-version") || argStr == std::string("--version")) { - INFOMSG("OPAL Version " << OPAL_VERSION_STR << ", git rev. " << Util::getGitRevision() << endl); + INFOMSG("OPAL Version " << OPAL_PROJECT_VERSION << ", git rev. " << Util::getGitRevision() << endl); IpplInfo::printVersion(true); std::string options = (IpplInfo::compileOptions() + std::string(" ") + - std::string(PACKAGE_COMPILE_OPTIONS) + + std::string(OPAL_COMPILE_OPTIONS) + std::string(" ")); std::set<std::string> uniqOptions; while (options.length() > 0) { diff --git a/src/Solvers/AMR_MG/AmrMultiGrid.cpp b/src/Solvers/AMR_MG/AmrMultiGrid.cpp index 6bebf16d4..1087c6d39 100644 --- a/src/Solvers/AMR_MG/AmrMultiGrid.cpp +++ b/src/Solvers/AMR_MG/AmrMultiGrid.cpp @@ -2111,7 +2111,7 @@ void AmrMultiGrid::writeSDDSHeader_m(std::ofstream& outfile) { << indent << "no_row_counts=1\n" << "&end\n" << Ippl::getNodes() << '\n' - << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << '\n' + << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << '\n' << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; } diff --git a/src/Structure/DataSink.cpp b/src/Structure/DataSink.cpp index 06c5e7417..820f19723 100644 --- a/src/Structure/DataSink.cpp +++ b/src/Structure/DataSink.cpp @@ -919,7 +919,7 @@ void DataSink::writeSDDSHeader(std::ofstream &outputFile, << "&end\n"; outputFile << Ippl::getNodes() << std::endl; - outputFile << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << std::endl; + outputFile << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << std::endl; outputFile << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; } @@ -1316,7 +1316,7 @@ void DataSink::replaceVersionString(const std::string &fileName) const { if (line != versionFile) { fs << line << "\n"; } else { - fs << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << "\n"; + fs << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << "\n"; } allLines.pop(); @@ -1410,7 +1410,7 @@ void DataSink::writeLBalHeader(PartBunchBase<double, 3> *beam, << "&end\n"; outputFile << Ippl::getNodes() << std::endl; - outputFile << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << std::endl; + outputFile << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << std::endl; outputFile << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; @@ -1512,7 +1512,7 @@ void DataSink::writeMemoryHeader(std::ofstream &outputFile) << "&end\n"; outputFile << Ippl::getNodes() << std::endl; - outputFile << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << std::endl; + outputFile << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << std::endl; outputFile << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; } @@ -1624,7 +1624,7 @@ void DataSink::writeGridLBalHeader(PartBunchBase<double, 3> *beam, << "&end\n"; outputFile << Ippl::getNodes() << std::endl; - outputFile << PACKAGE_NAME << " " << OPAL_VERSION_STR << " git rev. #" << Util::getGitRevision() << std::endl; + outputFile << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " git rev. #" << Util::getGitRevision() << std::endl; outputFile << (OpalData::getInstance()->isInOPALTMode()? "opal-t": (OpalData::getInstance()->isInOPALCyclMode()? "opal-cycl": "opal-env")) << std::endl; } diff --git a/src/Structure/H5PartWrapperForPC.cpp b/src/Structure/H5PartWrapperForPC.cpp index 8723792f6..c5eb2a2d4 100644 --- a/src/Structure/H5PartWrapperForPC.cpp +++ b/src/Structure/H5PartWrapperForPC.cpp @@ -222,7 +222,7 @@ void H5PartWrapperForPC::readStepData(PartBunchBase<double, 3>* bunch, void H5PartWrapperForPC::writeHeader() { std::stringstream OPAL_version; - OPAL_version << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision(); + OPAL_version << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision(); WRITESTRINGFILEATTRIB(file_m, "OPAL_version", OPAL_version.str().c_str()); WRITESTRINGFILEATTRIB(file_m, "tUnit", "s"); @@ -621,4 +621,4 @@ void H5PartWrapperForPC::writeStepData(PartBunchBase<double, 3>* bunch) { (h5_float64_t)bunch->get_hr()(1), (h5_float64_t)bunch->get_hr()(2))); } -} \ No newline at end of file +} diff --git a/src/Structure/H5PartWrapperForPS.cpp b/src/Structure/H5PartWrapperForPS.cpp index 0716fb41b..7823bf3c5 100644 --- a/src/Structure/H5PartWrapperForPS.cpp +++ b/src/Structure/H5PartWrapperForPS.cpp @@ -177,7 +177,7 @@ void H5PartWrapperForPS::writeHeader() { h5_float64_t dphi = OpalData::getInstance()->getGlobalPhaseShift(); std::stringstream OPAL_version; - OPAL_version << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision(); + OPAL_version << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision(); WRITESTRINGFILEATTRIB(file_m, "OPAL_version", OPAL_version.str().c_str()); WRITESTRINGFILEATTRIB(file_m, "xUnit", "m"); @@ -534,4 +534,4 @@ void H5PartWrapperForPS::dumpStashedPhaseSpaceEnvelope() { WRITEDATA(Float64, file_m, "pz", f64buffer); //rc = H5Fflush, file_m->file, rc = H5F_SCOPE_GLOBAL); } -} \ No newline at end of file +} diff --git a/src/Structure/H5PartWrapperForPT.cpp b/src/Structure/H5PartWrapperForPT.cpp index 74ee522c8..0f9e269a7 100644 --- a/src/Structure/H5PartWrapperForPT.cpp +++ b/src/Structure/H5PartWrapperForPT.cpp @@ -192,7 +192,7 @@ void H5PartWrapperForPT::readStepData(PartBunchBase<double, 3>* bunch, h5_ssize_ void H5PartWrapperForPT::writeHeader() { std::stringstream OPAL_version; - OPAL_version << PACKAGE_NAME << " " << OPAL_VERSION_STR << " # git rev. " << Util::getGitRevision(); + OPAL_version << OPAL_PROJECT_NAME << " " << OPAL_PROJECT_VERSION << " # git rev. " << Util::getGitRevision(); WRITESTRINGFILEATTRIB(file_m, "OPAL_version", OPAL_version.str().c_str()); WRITESTRINGFILEATTRIB(file_m, "SPOSUnit", "m"); @@ -467,4 +467,4 @@ void H5PartWrapperForPT::writeStepData(PartBunchBase<double, 3>* bunch) { reportOnError(herr, __FILE__, __LINE__); } -} \ No newline at end of file +} diff --git a/src/Track/TrackRun.cpp b/src/Track/TrackRun.cpp index 36275d477..2182883d3 100644 --- a/src/Track/TrackRun.cpp +++ b/src/Track/TrackRun.cpp @@ -161,7 +161,7 @@ TrackRun *TrackRun::clone(const std::string &name) { void TrackRun::execute() { - const int currentVersion = (OPAL_VERSION / 100) * 100; + const int currentVersion = ((OPAL_VERSION_MAJOR * 100) + OPAL_VERSION_MINOR) * 100; if (Options::version < currentVersion) { unsigned int fileVersion = Options::version / 100; bool newerChanges = false; diff --git a/src/ValueDefinitions/RealConstant.cpp b/src/ValueDefinitions/RealConstant.cpp index ec3127193..e75ad2640 100644 --- a/src/ValueDefinitions/RealConstant.cpp +++ b/src/ValueDefinitions/RealConstant.cpp @@ -59,7 +59,9 @@ RealConstant::RealConstant(): opal->create(new RealConstant("CLIGHT", this, Physics::c)); - opal->create(new RealConstant("OPALVERSION", this, OPAL_VERSION)); + opal->create(new RealConstant("OPALVERSION", this, OPAL_VERSION_MAJOR * 10000 + + OPAL_VERSION_MINOR * 100 + + OPAL_VERSION_PATCH)); opal->create(new RealConstant("RANK", this, Ippl::myNode())); } @@ -104,4 +106,4 @@ void RealConstant::print(std::ostream &os) const { void RealConstant::printValue(std::ostream &os) const { os << itsAttr[0]; -} \ No newline at end of file +} diff --git a/src/config.h.in b/src/config.h.in index 93df0b468..a4813fada 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -1,22 +1,17 @@ -/* Name of package */ -#define PACKAGE ${PACKAGE} - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT ${PACKAGE_BUGREPORT} - /* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME ${PACKAGE_TARNAME} +#define OPAL_PROJECT_NAME "${PROJECT_NAME}" -/* Define to the one symbol short name of this package. */ -#define PACKAGE_NAME ${PACKAGE_NAME} +/* Define OPAL version */ +#define OPAL_PROJECT_VERSION "${PROJECT_VERSION}" +#define OPAL_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} +#define OPAL_VERSION_MINOR ${PROJECT_VERSION_MINOR} +#define OPAL_VERSION_PATCH ${PROJECT_VERSION_PATCH} -/* Define to the version of this package. */ -#define OPAL_VERSION ${PACKAGE_VERSION} +/* Define string with the options used to compile OPAL */ +#define OPAL_COMPILE_OPTIONS "${CMAKE_CXX_FLAGS}" -/* Define string OPAL_VERSION */ -#define OPAL_VERSION_STR ${PACKAGE_VERSION_STR} +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "${PROJECT_BUGREPORT}" /* Define DKS version used in this package. */ #define DKS_VERSION ${DKS_VERSION_OPAL} - -#define PACKAGE_COMPILE_OPTIONS ${PACKAGE_COMPILE_OPTIONS} \ No newline at end of file -- GitLab