Skip to content
Snippets Groups Projects
baal-server.cmake 3.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • #stuff for ubuntu 24.04 or smthing
    
    
    #NETCDF support
    if (USE_NETCDF)
        set(CUSTOM_NETCDF false FORCE)
        find_package(Net_CDFCxx)
    endif()
    
    set(CMAKE_CUDA_ARCHITECTURES       89      CACHE STRING "CUDA ARCH for BAAL"       FORCE) # CUDA specific to server
    
    if ( COMPILER STREQUAL "intel")
        if (NO_MPI)
            set(CMAKE_C_COMPILER       icc      CACHE STRING "C compiler"       FORCE) # C compiler for serial build
            set(CMAKE_CXX_COMPILER     c++      CACHE STRING "CXX compiler"     FORCE) # C++ compiler for serial build
            set(CMAKE_Fortran_COMPILER ifort    CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for serial build
        else()
            set(CMAKE_C_COMPILER       mpiicc  CACHE STRING "C compiler"       FORCE) # C compiler for parallel build
            set(CMAKE_CXX_COMPILER     mpiicpc CACHE STRING "CXX compiler"     FORCE) # C++ compiler for parallel build
            set(CMAKE_Fortran_COMPILER mpiifort CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for parallel build
        endif()
        set(comp_flags -O3 -restrict -alias-const -parallel -funroll-loops -no-ansi-alias -xhost CACHE STRING FORCE)
    endif()
    
    if ( COMPILER STREQUAL "intel_oneapi")
            if (NO_MPI)
            set(CMAKE_C_COMPILER       icx      CACHE STRING "C compiler"       FORCE) # C compiler for serial build
            set(CMAKE_CXX_COMPILER     icpx      CACHE STRING "CXX compiler"     FORCE) # C++ compiler for serial build
            set(CMAKE_Fortran_COMPILER ifort    CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for serial build
        else()
            set(CMAKE_C_COMPILER       mpiicc -cc=icx  CACHE STRING "C compiler"       FORCE) # C compiler for parallel build
            set(CMAKE_CXX_COMPILER     mpiicpc -cxx=icpx CACHE STRING "CXX compiler"     FORCE) # C++ compiler for parallel build
            set(CMAKE_Fortran_COMPILER mpiifort -fc=ifx CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for parallel build
        endif()
        set(comp_flags -O3 -no-ansi-alias -funroll-loops -xhost   -Wno-tautological-constant-compare CACHE STRING "comp_flags to add" FORCE)
    endif()
    
    if ( COMPILER STREQUAL "gnu")
        if (NO_MPI)
            set(CMAKE_C_COMPILER       gcc      CACHE STRING "C compiler"       FORCE) # C compiler for serial build
            set(CMAKE_CXX_COMPILER     g++      CACHE STRING "CXX compiler"     FORCE) # C++ compiler for serial build
            set(CMAKE_Fortran_COMPILER gfortran    CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for serial build
        else()
            set(CMAKE_C_COMPILER       gcc  CACHE STRING "C compiler"       FORCE) # C compiler for parallel build
            set(CMAKE_CXX_COMPILER     g++ CACHE STRING "CXX compiler"     FORCE) # C++ compiler for parallel build
            set(CMAKE_Fortran_COMPILER gfortran CACHE STRING "Fortran compiler" FORCE) # Fortran compiler for parallel build
        endif()
        set(comp_flags -O3 -fno-strict-aliasing -funroll-loops -march=native -std=c++0x CACHE  STRING  "comp_flags to add" FORCE)
    endif()
    
    #specify stuff for run-script
    set(cluster_queue "none" CACHE STRING "queue" FORCE)
    
    if ( COMPILER  STREQUAL "intel" OR COMPILER  STREQUAL "intel_oneapi")
        set(run_exec "mpiexec" CACHE STRING "exec run" FORCE)
        set(prerun_env_export " " CACHE STRING "prerun exports" FORCE)
    endif()
    
    
    if ( COMPILER  STREQUAL "gnu")
        set(run_exec "mpirun" CACHE STRING "exec run" FORCE)
        set(prerun_env_export " " CACHE STRING "prerun exports" FORCE)
    endif ()
    message("prerun exprots:" ${prerun_env_export})
    message("run executable is:" ${run_exec})
    message("compiler choice:" ${COMPILER})