@@ -58,8 +58,6 @@ function(generate_gpu_param_header GPU_ARCH OUT_HEADER)
5858 endif ()
5959 file (READ "${GPU_PARAM_JSON} " JSON_CONTENT)
6060 set (TMP_HEADER "${OUT_HEADER} .tmp" )
61- message (STATUS "OUT_HEADER = '${OUT_HEADER} '" )
62- message (STATUS "TMP_HEADER = '${TMP_HEADER} '" )
6361 file (WRITE "${TMP_HEADER} " "#ifndef GPUDEFPARAMETERSDEFAULTS_H\n #define GPUDEFPARAMETERSDEFAULTS_H\n\n " )
6462 file (APPEND "${TMP_HEADER} " "// This file is auto-generated from gpu_params.json. Do not edit directly.\n " )
6563 string (REPLACE "," ";" ARCH_LIST "${TARGET_ARCH} " )
@@ -69,19 +67,27 @@ function(generate_gpu_param_header GPU_ARCH OUT_HEADER)
6967 # Types
7068 set (TYPES CORE LB PAR)
7169 # Per architecture definitions
70+ set (_first TRUE )
7271 foreach (ARCH IN LISTS ARCH_LIST)
73- file (APPEND "${TMP_HEADER} " "#if defined(GPUCA_GPUTYPE_${ARCH} )\n\n " )
74- generate_macros("${JSON_CONTENT} " "${TMP_HEADER} " "${TYPES} " "${ARCH} " "" )
75- file (APPEND "${TMP_HEADER} " "\n #endif // GPUCA_GPUTYPE_${ARCH} \n\n " )
72+ if (_first)
73+ file (APPEND "${TMP_HEADER} " "#if defined(GPUCA_GPUTYPE_${ARCH} )\n\n " )
74+ set (_first FALSE )
75+ else ()
76+ file (APPEND "${TMP_HEADER} " "#elif defined(GPUCA_GPUTYPE_${ARCH} )\n\n " )
77+ endif ()
78+ generate_macros("${JSON_CONTENT} " "${TMP_HEADER} " "${TYPES} " "${ARCH} " "" )
7679 endforeach ()
80+ if (NOT _first)
81+ file (APPEND "${TMP_HEADER} " "#else\n #error GPU TYPE NOT SET\n #endif\n " )
82+ endif ()
7783
7884 # Default parameters
7985 file (APPEND "${TMP_HEADER} " "\n // Default parameters if not defined for the target architecture\n\n " )
8086 generate_macros("${JSON_CONTENT} " "${TMP_HEADER} " "${TYPES} " "default" "use_ifndef_guard" )
8187 file (APPEND "${TMP_HEADER} " "#endif // defined(GPUCA_GPUCODE) && !defined(GPUCA_GPUCODE_GENRTC) && !defined(GPUCA_GPUCODE_NO_LAUNCH_BOUNDS)\n\n " )
8288
8389 # CPU fallback
84- file (APPEND "${TMP_HEADER} " "#ifndef GPUCA_GPUCODE_GENRTC //Defaults for non-LB parameters also for CPU fallback\n\n " ) # Get all keys of this TYPE as a semicolon-separated list
90+ file (APPEND "${TMP_HEADER} " "#ifndef GPUCA_GPUCODE_GENRTC //Defaults for non-LB parameters also for CPU fallback\n\n " )
8591 generate_macros("${JSON_CONTENT} " "${TMP_HEADER} " "PAR" "default_cpu" "use_ifndef_guard" )
8692 file (APPEND "${TMP_HEADER} " "\n #endif // GPUCA_GPUCODE_GENRTC\n " )
8793
0 commit comments