Skip to content
Snippets Groups Projects
  1. Jan 12, 2017
    • John Biddiscombe's avatar
      CMake fixes (#137) · 71aa4b18
      John Biddiscombe authored
      * Fix CMakeLists to handle build as a subproject
      
      When several CMake generated projects are build together, it is common
      practice to have a 'superproject' CMakeLists that uses
        add_subdir(proj1)
        add_subdir(proj2)
        ...
      where each subproject is a self contained CMake based project
      (Example proj1=HPX, proj2=nestmc, proj3=another, ...)
      
      CMAKE_SOURCE_DIR always points to the top level directory which
      is the superproject dir in this case, whereas PROJECT_SOURCE_DIR
      always points to the root of the current project() in the CMakeLists
      so one shouod use PROJECT_SOURCE_DIR as this gets the relative paths
      correct.
      
      * Add option to turn off auto generation from *.mod files
      
      * Fix #134 : Change CMake WITH_OPTION to NMC_WITH_OPTION, compiler #define to NMC_HAVE_OPTION
      
      1) The user may select an option by saying NMC_WITH_XXX
      
      2) This may trigger CMake to use find_package(...) or setup some
      other variables. CMake can then set variable NMC_HAVE_XXX and add a
      what has actually been used.
      
      3) Code should use #ifdef NMC_HAVE_XXX to check for a feature
      
      Old CMake/define      New CMake                 Compiler #define
      ----------------      ---------                 ----------------
      THREADING_MODEL       NMC_THREAD_MODEL
          WITH_TBB          NMC_WITH_TBB              NMC_HAVE_TBB
          WITH_OMP          NMC_WITH_OMP              NMC_HAVE_OMP
          WITH_SERIAL       NMC_WITH_SERiAL           NMC_HAVE_SERIAL
      
      WITH_MPI              NMC_WITH_MPI              NMC_HAVE_MPI
      WITH_CUDA             NMC_WITH_CUDA             NMC_HAVE_CUDA
      WITH_GPU                                        NMC_HAVE_GPU
      WITH_ASSERTIONS       NMC_WITH_ASSERTIONS       NMC_HAVE_ASSERTIONS
      WITH_TRACE            NMC_WITH_TRACE            NMC_HAVE_TRACE
      WITH_PROFILING        NMC_WITH_PROFILING        NMC_HAVE_PROFILING
      
      Other user visible CMake vars
      -----------------------------
      VECTORIZE_TARGET            -> NMC_VECTORIZE_TARGET
      USE_OPTIIZED_KERNELS        -> NMC_USE_OPTIIZED_KERNELS
      BUILD_VALIDATION_DATA       -> NMC_BUILD_VALIDATION_DATA
      BUILD_JULIA_VALIDATION_DATA -> NMC_BUILD_JULIA_VALIDATION_DATA
      BUILD_NRN_VALIDATION_DATA   -> NMC_BUILD_NRN_VALIDATION_DATA
      VALIDATION_DATA_DIR         -> NMC_VALIDATION_DATA_DIR
      
      Variables such as NMC_THREADING_MODEL and NMC_VECTORIZE_TARGET now use
      enumerated cmake values so you can toggle between them in ccmake gui.
      SYSTEM_TYPE_CRAY/BGQ        -> NMC_SYSTEM_TYPE (Generic/Cray/BGQ)
      
      * Use generator expression for modcc path
      
      Some IDE's (like Xcode for example), override the CMake binary paths
      and add /Debug or /Release etc so rules that have hard coded paths
      to binaries will fail.
      71aa4b18
  2. Oct 20, 2016
  3. Oct 19, 2016
  4. Oct 03, 2016
  5. Aug 24, 2016
  6. Jun 24, 2016
  7. Jun 10, 2016
  8. Jun 08, 2016
  9. Jun 06, 2016
  10. Dec 21, 2015