/usr/share/dune/cmake/modules/GridType.cmake is in libdune-grid-dev 2.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #
# Defined macros:
#
# dune_define_gridtype(<output> GRIDTYPE <gridtype> DUNETYPE <dunetype>
# [ASSERTION <assertion>] HEADERS header1 [ header2 ...])
#
# Addes a new GRIDTYPE target to DUNE's preprocessor magic.
# The generated magic will be stored in variable output
#
# Parameters: gridtype name of the new target
# assertion condition to be checked by the preprocessor
# dunetype C++ type of the grid
# header1 name of the header file which includes the grid
#
macro(dune_define_gridtype output)
cmake_parse_arguments(GRIDTYPE "" "GRIDTYPE;DUNETYPE;ASSERTION" "HEADERS" ${ARGN})
if(NOT(GRIDTYPE_GRIDTYPE AND GRIDTYPE_DUNETYPE))
message(ERROR "Both GRIDTYPE and DUNETYPE have to be set")
endif(NOT(GRIDTYPE_GRIDTYPE AND GRIDTYPE_DUNETYPE))
set(${output}
"${${output}}
/* add GRIDTYPE typedef for grid implementation ${GRIDTYPE_DUNETYPE}:
defining ${GRIDTYPE_GRIDTYPE} during compilation typedefs this grid implementation as GridType
in namespace Dune::GridSelector;
also integer constants dimgrid and dimworld are set in this namespace.
The required headers for this grid implementation are also included.
*/
#if HAVE_DUNE_GRID && defined ${GRIDTYPE_GRIDTYPE} && ! defined USED_${GRIDTYPE_GRIDTYPE}_GRIDTYPE
#if HAVE_GRIDTYPE
#error \"Ambiguous definition of GRIDTYPE.\"
#endif
#ifndef WORLDDIM
#define WORLDDIM GRIDDIM
#endif
#if not (WORLDDIM >= GRIDDIM)
#error \"WORLDDIM < GRIDDIM does not make sense.\"
#endif")
if(GRIDTYPE_ASSERTION)
set(${output} "${${output}}
#if ! (${GRIDTYPE_ASSERTION})
#error \"Preprocessor assertion ${GRIDTYPE_ASSERTION} failed.\"
#endif"
)
endif(GRIDTYPE_ASSERTION)
foreach(include ${GRIDTYPE_HEADERS})
set(${output} "${${output}}
#include <${include}>")
endforeach(include ${GRIDTYPE_HEADERS})
set(${output} "${${output}}
namespace Dune
{
namespace GridSelector
{
const int dimgrid = GRIDDIM;
const int dimworld = WORLDDIM;
typedef ${GRIDTYPE_DUNETYPE} GridType;
}
}
#define HAVE_GRIDTYPE 1
#define USED_${GRIDTYPE_GRIDTYPE}_GRIDTYPE 1
#endif // #if HAVE_DUNE_GRID && defined ${GRIDTYPE_GRIDTYPE} && ..")
endmacro(dune_define_gridtype output)
|