cmCommands.cxx 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cm_memory.hxx"
  4. #include "cmCommands.h"
  5. #include "cmPolicies.h"
  6. #include "cmState.h"
  7. #include "cmAddCompileDefinitionsCommand.h"
  8. #include "cmAddCustomCommandCommand.h"
  9. #include "cmAddCustomTargetCommand.h"
  10. #include "cmAddDefinitionsCommand.h"
  11. #include "cmAddDependenciesCommand.h"
  12. #include "cmAddExecutableCommand.h"
  13. #include "cmAddLibraryCommand.h"
  14. #include "cmAddSubDirectoryCommand.h"
  15. #include "cmAddTestCommand.h"
  16. #include "cmBreakCommand.h"
  17. #include "cmBuildCommand.h"
  18. #include "cmCMakeMinimumRequired.h"
  19. #include "cmCMakePolicyCommand.h"
  20. #include "cmCommand.h"
  21. #include "cmConfigureFileCommand.h"
  22. #include "cmContinueCommand.h"
  23. #include "cmCreateTestSourceList.h"
  24. #include "cmDefinePropertyCommand.h"
  25. #include "cmEnableLanguageCommand.h"
  26. #include "cmEnableTestingCommand.h"
  27. #include "cmExecProgramCommand.h"
  28. #include "cmExecuteProcessCommand.h"
  29. #include "cmFileCommand.h"
  30. #include "cmFindFileCommand.h"
  31. #include "cmFindLibraryCommand.h"
  32. #include "cmFindPackageCommand.h"
  33. #include "cmFindPathCommand.h"
  34. #include "cmFindProgramCommand.h"
  35. #include "cmForEachCommand.h"
  36. #include "cmFunctionCommand.h"
  37. #include "cmGetCMakePropertyCommand.h"
  38. #include "cmGetDirectoryPropertyCommand.h"
  39. #include "cmGetFilenameComponentCommand.h"
  40. #include "cmGetPropertyCommand.h"
  41. #include "cmGetSourceFilePropertyCommand.h"
  42. #include "cmGetTargetPropertyCommand.h"
  43. #include "cmGetTestPropertyCommand.h"
  44. #include "cmIfCommand.h"
  45. #include "cmIncludeCommand.h"
  46. #include "cmIncludeDirectoryCommand.h"
  47. #include "cmIncludeGuardCommand.h"
  48. #include "cmIncludeRegularExpressionCommand.h"
  49. #include "cmInstallCommand.h"
  50. #include "cmInstallFilesCommand.h"
  51. #include "cmInstallTargetsCommand.h"
  52. #include "cmLinkDirectoriesCommand.h"
  53. #include "cmListCommand.h"
  54. #include "cmMacroCommand.h"
  55. #include "cmMakeDirectoryCommand.h"
  56. #include "cmMarkAsAdvancedCommand.h"
  57. #include "cmMathCommand.h"
  58. #include "cmMessageCommand.h"
  59. #include "cmOptionCommand.h"
  60. #include "cmParseArgumentsCommand.h"
  61. #include "cmProjectCommand.h"
  62. #include "cmReturnCommand.h"
  63. #include "cmSeparateArgumentsCommand.h"
  64. #include "cmSetCommand.h"
  65. #include "cmSetDirectoryPropertiesCommand.h"
  66. #include "cmSetPropertyCommand.h"
  67. #include "cmSetSourceFilesPropertiesCommand.h"
  68. #include "cmSetTargetPropertiesCommand.h"
  69. #include "cmSetTestsPropertiesCommand.h"
  70. #include "cmSiteNameCommand.h"
  71. #include "cmStringCommand.h"
  72. #include "cmSubdirCommand.h"
  73. #include "cmTargetCompileDefinitionsCommand.h"
  74. #include "cmTargetCompileFeaturesCommand.h"
  75. #include "cmTargetCompileOptionsCommand.h"
  76. #include "cmTargetIncludeDirectoriesCommand.h"
  77. #include "cmTargetLinkLibrariesCommand.h"
  78. #include "cmTargetSourcesCommand.h"
  79. #include "cmTryCompileCommand.h"
  80. #include "cmTryRunCommand.h"
  81. #include "cmUnsetCommand.h"
  82. #include "cmWhileCommand.h"
  83. #if defined(CMAKE_BUILD_WITH_CMAKE)
  84. # include "cmAddCompileOptionsCommand.h"
  85. # include "cmAddLinkOptionsCommand.h"
  86. # include "cmAuxSourceDirectoryCommand.h"
  87. # include "cmBuildNameCommand.h"
  88. # include "cmCMakeHostSystemInformationCommand.h"
  89. # include "cmExportCommand.h"
  90. # include "cmExportLibraryDependenciesCommand.h"
  91. # include "cmFLTKWrapUICommand.h"
  92. # include "cmIncludeExternalMSProjectCommand.h"
  93. # include "cmInstallProgramsCommand.h"
  94. # include "cmLinkLibrariesCommand.h"
  95. # include "cmLoadCacheCommand.h"
  96. # include "cmLoadCommandCommand.h"
  97. # include "cmOutputRequiredFilesCommand.h"
  98. # include "cmQTWrapCPPCommand.h"
  99. # include "cmQTWrapUICommand.h"
  100. # include "cmRemoveCommand.h"
  101. # include "cmRemoveDefinitionsCommand.h"
  102. # include "cmSourceGroupCommand.h"
  103. # include "cmSubdirDependsCommand.h"
  104. # include "cmTargetLinkDirectoriesCommand.h"
  105. # include "cmTargetLinkOptionsCommand.h"
  106. # include "cmUseMangledMesaCommand.h"
  107. # include "cmUtilitySourceCommand.h"
  108. # include "cmVariableRequiresCommand.h"
  109. # include "cmVariableWatchCommand.h"
  110. # include "cmWriteFileCommand.h"
  111. #endif
  112. void GetScriptingCommands(cmState* state)
  113. {
  114. state->AddBuiltinCommand("break", cm::make_unique<cmBreakCommand>());
  115. state->AddBuiltinCommand("cmake_minimum_required",
  116. cm::make_unique<cmCMakeMinimumRequired>());
  117. state->AddBuiltinCommand("cmake_policy",
  118. cm::make_unique<cmCMakePolicyCommand>());
  119. state->AddBuiltinCommand("configure_file",
  120. cm::make_unique<cmConfigureFileCommand>());
  121. state->AddBuiltinCommand("continue", cm::make_unique<cmContinueCommand>());
  122. state->AddBuiltinCommand("exec_program",
  123. cm::make_unique<cmExecProgramCommand>());
  124. state->AddBuiltinCommand("execute_process",
  125. cm::make_unique<cmExecuteProcessCommand>());
  126. state->AddBuiltinCommand("file", cmFileCommand);
  127. state->AddBuiltinCommand("find_file", cm::make_unique<cmFindFileCommand>());
  128. state->AddBuiltinCommand("find_library",
  129. cm::make_unique<cmFindLibraryCommand>());
  130. state->AddBuiltinCommand("find_package",
  131. cm::make_unique<cmFindPackageCommand>());
  132. state->AddBuiltinCommand("find_path", cm::make_unique<cmFindPathCommand>());
  133. state->AddBuiltinCommand("find_program",
  134. cm::make_unique<cmFindProgramCommand>());
  135. state->AddBuiltinCommand("foreach", cm::make_unique<cmForEachCommand>());
  136. state->AddBuiltinCommand("function", cm::make_unique<cmFunctionCommand>());
  137. state->AddBuiltinCommand("get_cmake_property",
  138. cm::make_unique<cmGetCMakePropertyCommand>());
  139. state->AddBuiltinCommand("get_directory_property",
  140. cm::make_unique<cmGetDirectoryPropertyCommand>());
  141. state->AddBuiltinCommand("get_filename_component",
  142. cm::make_unique<cmGetFilenameComponentCommand>());
  143. state->AddBuiltinCommand("get_property",
  144. cm::make_unique<cmGetPropertyCommand>());
  145. state->AddBuiltinCommand("if", cmIfCommand);
  146. state->AddBuiltinCommand("include", cm::make_unique<cmIncludeCommand>());
  147. state->AddBuiltinCommand("include_guard",
  148. cm::make_unique<cmIncludeGuardCommand>());
  149. state->AddBuiltinCommand("list", cm::make_unique<cmListCommand>());
  150. state->AddBuiltinCommand("macro", cm::make_unique<cmMacroCommand>());
  151. state->AddBuiltinCommand("make_directory",
  152. cm::make_unique<cmMakeDirectoryCommand>());
  153. state->AddBuiltinCommand("mark_as_advanced",
  154. cm::make_unique<cmMarkAsAdvancedCommand>());
  155. state->AddBuiltinCommand("math", cm::make_unique<cmMathCommand>());
  156. state->AddBuiltinCommand("message", cm::make_unique<cmMessageCommand>());
  157. state->AddBuiltinCommand("option", cm::make_unique<cmOptionCommand>());
  158. state->AddBuiltinCommand("cmake_parse_arguments",
  159. cm::make_unique<cmParseArgumentsCommand>());
  160. state->AddBuiltinCommand("return", cmReturnCommand);
  161. state->AddBuiltinCommand("separate_arguments",
  162. cm::make_unique<cmSeparateArgumentsCommand>());
  163. state->AddBuiltinCommand("set", cm::make_unique<cmSetCommand>());
  164. state->AddBuiltinCommand("set_directory_properties",
  165. cm::make_unique<cmSetDirectoryPropertiesCommand>());
  166. state->AddBuiltinCommand("set_property",
  167. cm::make_unique<cmSetPropertyCommand>());
  168. state->AddBuiltinCommand("site_name", cm::make_unique<cmSiteNameCommand>());
  169. state->AddBuiltinCommand("string", cm::make_unique<cmStringCommand>());
  170. state->AddBuiltinCommand("unset", cm::make_unique<cmUnsetCommand>());
  171. state->AddBuiltinCommand("while", cmWhileCommand);
  172. state->AddUnexpectedCommand(
  173. "else",
  174. "An ELSE command was found outside of a proper "
  175. "IF ENDIF structure. Or its arguments did not match "
  176. "the opening IF command.");
  177. state->AddUnexpectedCommand(
  178. "elseif",
  179. "An ELSEIF command was found outside of a proper "
  180. "IF ENDIF structure.");
  181. state->AddUnexpectedCommand(
  182. "endforeach",
  183. "An ENDFOREACH command was found outside of a proper "
  184. "FOREACH ENDFOREACH structure. Or its arguments did "
  185. "not match the opening FOREACH command.");
  186. state->AddUnexpectedCommand(
  187. "endfunction",
  188. "An ENDFUNCTION command was found outside of a proper "
  189. "FUNCTION ENDFUNCTION structure. Or its arguments did not "
  190. "match the opening FUNCTION command.");
  191. state->AddUnexpectedCommand(
  192. "endif",
  193. "An ENDIF command was found outside of a proper "
  194. "IF ENDIF structure. Or its arguments did not match "
  195. "the opening IF command.");
  196. state->AddUnexpectedCommand(
  197. "endmacro",
  198. "An ENDMACRO command was found outside of a proper "
  199. "MACRO ENDMACRO structure. Or its arguments did not "
  200. "match the opening MACRO command.");
  201. state->AddUnexpectedCommand(
  202. "endwhile",
  203. "An ENDWHILE command was found outside of a proper "
  204. "WHILE ENDWHILE structure. Or its arguments did not "
  205. "match the opening WHILE command.");
  206. #if defined(CMAKE_BUILD_WITH_CMAKE)
  207. state->AddBuiltinCommand(
  208. "cmake_host_system_information",
  209. cm::make_unique<cmCMakeHostSystemInformationCommand>());
  210. state->AddBuiltinCommand("remove", cm::make_unique<cmRemoveCommand>());
  211. state->AddBuiltinCommand("variable_watch",
  212. cm::make_unique<cmVariableWatchCommand>());
  213. state->AddBuiltinCommand("write_file",
  214. cm::make_unique<cmWriteFileCommand>());
  215. state->AddDisallowedCommand(
  216. "build_name", cm::make_unique<cmBuildNameCommand>(), cmPolicies::CMP0036,
  217. "The build_name command should not be called; see CMP0036.");
  218. state->AddDisallowedCommand(
  219. "use_mangled_mesa", cm::make_unique<cmUseMangledMesaCommand>(),
  220. cmPolicies::CMP0030,
  221. "The use_mangled_mesa command should not be called; see CMP0030.");
  222. #endif
  223. }
  224. void GetProjectCommands(cmState* state)
  225. {
  226. state->AddBuiltinCommand("add_custom_command",
  227. cm::make_unique<cmAddCustomCommandCommand>());
  228. state->AddBuiltinCommand("add_custom_target",
  229. cm::make_unique<cmAddCustomTargetCommand>());
  230. state->AddBuiltinCommand("add_definitions",
  231. cm::make_unique<cmAddDefinitionsCommand>());
  232. state->AddBuiltinCommand("add_dependencies",
  233. cm::make_unique<cmAddDependenciesCommand>());
  234. state->AddBuiltinCommand("add_executable",
  235. cm::make_unique<cmAddExecutableCommand>());
  236. state->AddBuiltinCommand("add_library",
  237. cm::make_unique<cmAddLibraryCommand>());
  238. state->AddBuiltinCommand("add_subdirectory",
  239. cm::make_unique<cmAddSubDirectoryCommand>());
  240. state->AddBuiltinCommand("add_test", cm::make_unique<cmAddTestCommand>());
  241. state->AddBuiltinCommand("build_command", cm::make_unique<cmBuildCommand>());
  242. state->AddBuiltinCommand("create_test_sourcelist",
  243. cm::make_unique<cmCreateTestSourceList>());
  244. state->AddBuiltinCommand("define_property",
  245. cm::make_unique<cmDefinePropertyCommand>());
  246. state->AddBuiltinCommand("enable_language",
  247. cm::make_unique<cmEnableLanguageCommand>());
  248. state->AddBuiltinCommand("enable_testing", cmEnableTestingCommand);
  249. state->AddBuiltinCommand("get_source_file_property",
  250. cm::make_unique<cmGetSourceFilePropertyCommand>());
  251. state->AddBuiltinCommand("get_target_property",
  252. cm::make_unique<cmGetTargetPropertyCommand>());
  253. state->AddBuiltinCommand("get_test_property",
  254. cm::make_unique<cmGetTestPropertyCommand>());
  255. state->AddBuiltinCommand("include_directories",
  256. cm::make_unique<cmIncludeDirectoryCommand>());
  257. state->AddBuiltinCommand(
  258. "include_regular_expression",
  259. cm::make_unique<cmIncludeRegularExpressionCommand>());
  260. state->AddBuiltinCommand("install", cm::make_unique<cmInstallCommand>());
  261. state->AddBuiltinCommand("install_files",
  262. cm::make_unique<cmInstallFilesCommand>());
  263. state->AddBuiltinCommand("install_targets",
  264. cm::make_unique<cmInstallTargetsCommand>());
  265. state->AddBuiltinCommand("link_directories",
  266. cm::make_unique<cmLinkDirectoriesCommand>());
  267. state->AddBuiltinCommand("project", cm::make_unique<cmProjectCommand>());
  268. state->AddBuiltinCommand(
  269. "set_source_files_properties",
  270. cm::make_unique<cmSetSourceFilesPropertiesCommand>());
  271. state->AddBuiltinCommand("set_target_properties",
  272. cm::make_unique<cmSetTargetPropertiesCommand>());
  273. state->AddBuiltinCommand("set_tests_properties",
  274. cm::make_unique<cmSetTestsPropertiesCommand>());
  275. state->AddBuiltinCommand("subdirs", cm::make_unique<cmSubdirCommand>());
  276. state->AddBuiltinCommand(
  277. "target_compile_definitions",
  278. cm::make_unique<cmTargetCompileDefinitionsCommand>());
  279. state->AddBuiltinCommand("target_compile_features",
  280. cm::make_unique<cmTargetCompileFeaturesCommand>());
  281. state->AddBuiltinCommand("target_compile_options",
  282. cm::make_unique<cmTargetCompileOptionsCommand>());
  283. state->AddBuiltinCommand(
  284. "target_include_directories",
  285. cm::make_unique<cmTargetIncludeDirectoriesCommand>());
  286. state->AddBuiltinCommand("target_link_libraries",
  287. cm::make_unique<cmTargetLinkLibrariesCommand>());
  288. state->AddBuiltinCommand("target_sources",
  289. cm::make_unique<cmTargetSourcesCommand>());
  290. state->AddBuiltinCommand("try_compile",
  291. cm::make_unique<cmTryCompileCommand>());
  292. state->AddBuiltinCommand("try_run", cm::make_unique<cmTryRunCommand>());
  293. #if defined(CMAKE_BUILD_WITH_CMAKE)
  294. state->AddBuiltinCommand("add_compile_definitions",
  295. cm::make_unique<cmAddCompileDefinitionsCommand>());
  296. state->AddBuiltinCommand("add_compile_options",
  297. cm::make_unique<cmAddCompileOptionsCommand>());
  298. state->AddBuiltinCommand("aux_source_directory",
  299. cm::make_unique<cmAuxSourceDirectoryCommand>());
  300. state->AddBuiltinCommand("export", cm::make_unique<cmExportCommand>());
  301. state->AddBuiltinCommand("fltk_wrap_ui",
  302. cm::make_unique<cmFLTKWrapUICommand>());
  303. state->AddBuiltinCommand(
  304. "include_external_msproject",
  305. cm::make_unique<cmIncludeExternalMSProjectCommand>());
  306. state->AddBuiltinCommand("install_programs",
  307. cm::make_unique<cmInstallProgramsCommand>());
  308. state->AddBuiltinCommand("add_link_options",
  309. cm::make_unique<cmAddLinkOptionsCommand>());
  310. state->AddBuiltinCommand("link_libraries",
  311. cm::make_unique<cmLinkLibrariesCommand>());
  312. state->AddBuiltinCommand("target_link_options",
  313. cm::make_unique<cmTargetLinkOptionsCommand>());
  314. state->AddBuiltinCommand("target_link_directories",
  315. cm::make_unique<cmTargetLinkDirectoriesCommand>());
  316. state->AddBuiltinCommand("load_cache",
  317. cm::make_unique<cmLoadCacheCommand>());
  318. state->AddBuiltinCommand("qt_wrap_cpp",
  319. cm::make_unique<cmQTWrapCPPCommand>());
  320. state->AddBuiltinCommand("qt_wrap_ui", cm::make_unique<cmQTWrapUICommand>());
  321. state->AddBuiltinCommand("remove_definitions",
  322. cm::make_unique<cmRemoveDefinitionsCommand>());
  323. state->AddBuiltinCommand("source_group",
  324. cm::make_unique<cmSourceGroupCommand>());
  325. state->AddDisallowedCommand(
  326. "export_library_dependencies",
  327. cm::make_unique<cmExportLibraryDependenciesCommand>(), cmPolicies::CMP0033,
  328. "The export_library_dependencies command should not be called; "
  329. "see CMP0033.");
  330. state->AddDisallowedCommand(
  331. "load_command", cm::make_unique<cmLoadCommandCommand>(),
  332. cmPolicies::CMP0031,
  333. "The load_command command should not be called; see CMP0031.");
  334. state->AddDisallowedCommand(
  335. "output_required_files", cm::make_unique<cmOutputRequiredFilesCommand>(),
  336. cmPolicies::CMP0032,
  337. "The output_required_files command should not be called; see CMP0032.");
  338. state->AddDisallowedCommand(
  339. "subdir_depends", cm::make_unique<cmSubdirDependsCommand>(),
  340. cmPolicies::CMP0029,
  341. "The subdir_depends command should not be called; see CMP0029.");
  342. state->AddDisallowedCommand(
  343. "utility_source", cm::make_unique<cmUtilitySourceCommand>(),
  344. cmPolicies::CMP0034,
  345. "The utility_source command should not be called; see CMP0034.");
  346. state->AddDisallowedCommand(
  347. "variable_requires", cm::make_unique<cmVariableRequiresCommand>(),
  348. cmPolicies::CMP0035,
  349. "The variable_requires command should not be called; see CMP0035.");
  350. #endif
  351. }
  352. void GetProjectCommandsInScriptMode(cmState* state)
  353. {
  354. #define CM_UNEXPECTED_PROJECT_COMMAND(NAME) \
  355. state->AddUnexpectedCommand(NAME, "command is not scriptable")
  356. CM_UNEXPECTED_PROJECT_COMMAND("add_compile_options");
  357. CM_UNEXPECTED_PROJECT_COMMAND("add_custom_command");
  358. CM_UNEXPECTED_PROJECT_COMMAND("add_custom_target");
  359. CM_UNEXPECTED_PROJECT_COMMAND("add_definitions");
  360. CM_UNEXPECTED_PROJECT_COMMAND("add_dependencies");
  361. CM_UNEXPECTED_PROJECT_COMMAND("add_executable");
  362. CM_UNEXPECTED_PROJECT_COMMAND("add_library");
  363. CM_UNEXPECTED_PROJECT_COMMAND("add_subdirectory");
  364. CM_UNEXPECTED_PROJECT_COMMAND("add_test");
  365. CM_UNEXPECTED_PROJECT_COMMAND("aux_source_directory");
  366. CM_UNEXPECTED_PROJECT_COMMAND("build_command");
  367. CM_UNEXPECTED_PROJECT_COMMAND("create_test_sourcelist");
  368. CM_UNEXPECTED_PROJECT_COMMAND("define_property");
  369. CM_UNEXPECTED_PROJECT_COMMAND("enable_language");
  370. CM_UNEXPECTED_PROJECT_COMMAND("enable_testing");
  371. CM_UNEXPECTED_PROJECT_COMMAND("export");
  372. CM_UNEXPECTED_PROJECT_COMMAND("fltk_wrap_ui");
  373. CM_UNEXPECTED_PROJECT_COMMAND("get_source_file_property");
  374. CM_UNEXPECTED_PROJECT_COMMAND("get_target_property");
  375. CM_UNEXPECTED_PROJECT_COMMAND("get_test_property");
  376. CM_UNEXPECTED_PROJECT_COMMAND("include_directories");
  377. CM_UNEXPECTED_PROJECT_COMMAND("include_external_msproject");
  378. CM_UNEXPECTED_PROJECT_COMMAND("include_regular_expression");
  379. CM_UNEXPECTED_PROJECT_COMMAND("install");
  380. CM_UNEXPECTED_PROJECT_COMMAND("link_directories");
  381. CM_UNEXPECTED_PROJECT_COMMAND("link_libraries");
  382. CM_UNEXPECTED_PROJECT_COMMAND("load_cache");
  383. CM_UNEXPECTED_PROJECT_COMMAND("project");
  384. CM_UNEXPECTED_PROJECT_COMMAND("qt_wrap_cpp");
  385. CM_UNEXPECTED_PROJECT_COMMAND("qt_wrap_ui");
  386. CM_UNEXPECTED_PROJECT_COMMAND("remove_definitions");
  387. CM_UNEXPECTED_PROJECT_COMMAND("set_source_files_properties");
  388. CM_UNEXPECTED_PROJECT_COMMAND("set_target_properties");
  389. CM_UNEXPECTED_PROJECT_COMMAND("set_tests_properties");
  390. CM_UNEXPECTED_PROJECT_COMMAND("source_group");
  391. CM_UNEXPECTED_PROJECT_COMMAND("target_compile_definitions");
  392. CM_UNEXPECTED_PROJECT_COMMAND("target_compile_features");
  393. CM_UNEXPECTED_PROJECT_COMMAND("target_compile_options");
  394. CM_UNEXPECTED_PROJECT_COMMAND("target_include_directories");
  395. CM_UNEXPECTED_PROJECT_COMMAND("target_link_libraries");
  396. CM_UNEXPECTED_PROJECT_COMMAND("target_sources");
  397. CM_UNEXPECTED_PROJECT_COMMAND("try_compile");
  398. CM_UNEXPECTED_PROJECT_COMMAND("try_run");
  399. // deprecated commands
  400. CM_UNEXPECTED_PROJECT_COMMAND("export_library_dependencies");
  401. CM_UNEXPECTED_PROJECT_COMMAND("load_command");
  402. CM_UNEXPECTED_PROJECT_COMMAND("output_required_files");
  403. CM_UNEXPECTED_PROJECT_COMMAND("subdir_depends");
  404. CM_UNEXPECTED_PROJECT_COMMAND("utility_source");
  405. CM_UNEXPECTED_PROJECT_COMMAND("variable_requires");
  406. #undef CM_UNEXPECTED_PROJECT_COMMAND
  407. }