Imported Upstream version 2.8.12.2
[platform/upstream/cmake.git] / Source / CMakeLists.txt
1 #=============================================================================
2 # CMake - Cross Platform Makefile Generator
3 # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
4 #
5 # Distributed under the OSI-approved BSD License (the "License");
6 # see accompanying file Copyright.txt for details.
7 #
8 # This software is distributed WITHOUT ANY WARRANTY; without even the
9 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 # See the License for more information.
11 #=============================================================================
12 include(CheckIncludeFile)
13 # Check if we can build support for ELF parsing.
14 if(CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD")
15   CHECK_INCLUDE_FILES("stdint.h;elf_abi.h" HAVE_ELF_H)
16 else()
17   CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
18 endif()
19 if(HAVE_ELF_H)
20   set(CMAKE_USE_ELF_PARSER 1)
21 else()
22   set(CMAKE_USE_ELF_PARSER)
23 endif()
24
25 set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
26
27 # configure the .h file
28 configure_file(
29   "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
30   "${CMake_BINARY_DIR}/Source/cmConfigure.h"
31   )
32 configure_file(
33   "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
34   "${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
35   )
36 configure_file(
37   "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
38   "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
39   )
40
41 # add the include path to find the .h
42 include_directories(
43   "${CMake_BINARY_DIR}/Source"
44   "${CMake_SOURCE_DIR}/Source"
45   ${CMAKE_ZLIB_INCLUDES}
46   ${CMAKE_EXPAT_INCLUDES}
47   ${CMAKE_TAR_INCLUDES}
48   ${CMAKE_COMPRESS_INCLUDES}
49   )
50
51 # let cmake know it is supposed to use it
52 add_definitions(-DCMAKE_BUILD_WITH_CMAKE)
53
54 option(CMAKE_REGENERATE_YACCLEX
55   "Regenerate YACC and LEXX files" OFF)
56 mark_as_advanced(CMAKE_REGENERATE_YACCLEX)
57 if(CMAKE_REGENERATE_YACCLEX)
58   set(parsersLexers cmDependsFortran cmCommandArgument cmExpr)
59   find_program(YACC_EXECUTABLE
60     NAMES yacc bison
61     PATHS /usr/bin
62     DOC "Yacc or Bison executable")
63   find_program(FLEX_EXECUTABLE
64     NAMES flex
65     PATHS /usr/bin
66     DOC "Flex executable")
67   mark_as_advanced(YACC_EXECUTABLE FLEX_EXECUTABLE)
68   if(YACC_EXECUTABLE)
69     set(BISON_FLAGS)
70     if(YACC_EXECUTABLE MATCHES "bison")
71       set(BISON_FLAGS "--yacc")
72     endif()
73     set(yacc_files)
74     foreach(name ${parsersLexers})
75       set(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
76       set(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
77       set(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
78       add_custom_command(
79         OUTPUT "${dst}"
80         DEPENDS "${src}"
81         COMMAND
82         ${YACC_EXECUTABLE}
83         --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src}
84         )
85       set(yacc_files ${yacc_files} "${dst}")
86     endforeach()
87     add_custom_target(RerunYacc DEPENDS ${yacc_files})
88   endif()
89   if(FLEX_EXECUTABLE)
90     set(lex_files)
91     foreach(name ${parsersLexers})
92       set(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
93       set(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
94       set(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
95       add_custom_command(
96         OUTPUT "${dst}"
97         DEPENDS "${src}"
98         COMMAND
99         ${FLEX_EXECUTABLE}
100         --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src}
101         )
102       set(lex_files ${lex_files} "${dst}")
103     endforeach()
104     add_custom_target(RerunLex DEPENDS ${lex_files})
105   endif()
106
107 endif()
108
109 # Check if we can build the ELF parser.
110 if(CMAKE_USE_ELF_PARSER)
111   set(ELF_SRCS cmELF.h cmELF.cxx)
112 endif()
113
114 #
115 # Sources for CMakeLib
116 #
117 set(SRCS
118   cmStandardIncludes.cxx
119   cmArchiveWrite.cxx
120   cmBootstrapCommands1.cxx
121   cmBootstrapCommands2.cxx
122   cmCacheManager.cxx
123   cmCacheManager.h
124   cmCommands.cxx
125   cmCommands.h
126   cmCommandArgumentLexer.cxx
127   cmCommandArgumentParser.cxx
128   cmCommandArgumentParserHelper.cxx
129   cmComputeComponentGraph.cxx
130   cmComputeComponentGraph.h
131   cmComputeLinkDepends.cxx
132   cmComputeLinkDepends.h
133   cmComputeLinkInformation.cxx
134   cmComputeLinkInformation.h
135   cmComputeTargetDepends.h
136   cmComputeTargetDepends.cxx
137   cmCryptoHash.cxx
138   cmCryptoHash.h
139   cmCustomCommand.cxx
140   cmCustomCommand.h
141   cmCustomCommandGenerator.cxx
142   cmCustomCommandGenerator.h
143   cmDefinitions.cxx
144   cmDefinitions.h
145   cmDepends.cxx
146   cmDepends.h
147   cmDependsC.cxx
148   cmDependsC.h
149   cmDependsFortran.cxx
150   cmDependsFortran.h
151   cmDependsFortranLexer.cxx
152   cmDependsFortranParser.cxx
153   cmDependsFortranParser.h
154   cmDependsJava.cxx
155   cmDependsJava.h
156   cmDependsJavaLexer.cxx
157   cmDependsJavaParser.cxx
158   cmDependsJavaParserHelper.cxx
159   cmDependsJavaParserHelper.h
160   cmDocumentation.cxx
161   cmDocumentationFormatter.cxx
162   cmDocumentationFormatterHTML.cxx
163   cmDocumentationFormatterDocbook.cxx
164   cmDocumentationFormatterMan.cxx
165   cmDocumentationFormatterText.cxx
166   cmDocumentationFormatterUsage.cxx
167   cmDocumentationSection.cxx
168   cmDocumentCompileDefinitions.h
169   cmDocumentGeneratorExpressions.h
170   cmDocumentLocationUndefined.h
171   cmDocumentVariables.cxx
172   cmDynamicLoader.cxx
173   cmDynamicLoader.h
174   ${ELF_SRCS}
175   cmExprLexer.cxx
176   cmExprParser.cxx
177   cmExprParserHelper.cxx
178   cmExportBuildFileGenerator.h
179   cmExportBuildFileGenerator.cxx
180   cmExportFileGenerator.h
181   cmExportFileGenerator.cxx
182   cmExportInstallFileGenerator.h
183   cmExportInstallFileGenerator.cxx
184   cmExportTryCompileFileGenerator.h
185   cmExportTryCompileFileGenerator.cxx
186   cmExportSet.h
187   cmExportSet.cxx
188   cmExportSetMap.h
189   cmExportSetMap.cxx
190   cmExtraCodeBlocksGenerator.cxx
191   cmExtraCodeBlocksGenerator.h
192   cmExtraEclipseCDT4Generator.cxx
193   cmExtraEclipseCDT4Generator.h
194   cmExtraSublimeTextGenerator.cxx
195   cmExtraSublimeTextGenerator.h
196   cmFileTimeComparison.cxx
197   cmFileTimeComparison.h
198   cmGeneratedFileStream.cxx
199   cmGeneratorExpressionDAGChecker.cxx
200   cmGeneratorExpressionDAGChecker.h
201   cmGeneratorExpressionEvaluator.cxx
202   cmGeneratorExpressionEvaluator.h
203   cmGeneratorExpressionLexer.cxx
204   cmGeneratorExpressionLexer.h
205   cmGeneratorExpressionParser.cxx
206   cmGeneratorExpressionParser.h
207   cmGeneratorExpression.cxx
208   cmGeneratorExpression.h
209   cmGeneratorTarget.cxx
210   cmGeneratorTarget.h
211   cmGlobalGenerator.cxx
212   cmGlobalGenerator.h
213   cmGlobalGeneratorFactory.h
214   cmGlobalUnixMakefileGenerator3.cxx
215   cmGlobalUnixMakefileGenerator3.h
216   cmGraphAdjacencyList.h
217   cmGraphVizWriter.cxx
218   cmGraphVizWriter.h
219   cmInstallGenerator.h
220   cmInstallGenerator.cxx
221   cmInstallExportGenerator.cxx
222   cmInstallFilesGenerator.h
223   cmInstallFilesGenerator.cxx
224   cmInstallScriptGenerator.h
225   cmInstallScriptGenerator.cxx
226   cmInstallTargetGenerator.h
227   cmInstallTargetGenerator.cxx
228   cmInstallDirectoryGenerator.h
229   cmInstallDirectoryGenerator.cxx
230   cmListFileCache.cxx
231   cmListFileCache.h
232   cmListFileLexer.c
233   cmLocalGenerator.cxx
234   cmLocalGenerator.h
235   cmLocalUnixMakefileGenerator3.cxx
236   cmMakeDepend.cxx
237   cmMakeDepend.h
238   cmMakefile.cxx
239   cmMakefile.h
240   cmMakefileTargetGenerator.cxx
241   cmMakefileExecutableTargetGenerator.cxx
242   cmMakefileLibraryTargetGenerator.cxx
243   cmMakefileUtilityTargetGenerator.cxx
244   cmOSXBundleGenerator.cxx
245   cmOSXBundleGenerator.h
246   cmNewLineStyle.h
247   cmNewLineStyle.cxx
248   cmOrderDirectories.cxx
249   cmOrderDirectories.h
250   cmPolicies.h
251   cmPolicies.cxx
252   cmProcessTools.cxx
253   cmProcessTools.h
254   cmProperty.cxx
255   cmProperty.h
256   cmPropertyDefinition.cxx
257   cmPropertyDefinition.h
258   cmPropertyDefinitionMap.cxx
259   cmPropertyDefinitionMap.h
260   cmPropertyMap.cxx
261   cmPropertyMap.h
262   cmQtAutomoc.cxx
263   cmQtAutomoc.h
264   cmScriptGenerator.h
265   cmScriptGenerator.cxx
266   cmSourceFile.cxx
267   cmSourceFile.h
268   cmSourceFileLocation.cxx
269   cmSourceFileLocation.h
270   cmSourceGroup.cxx
271   cmSourceGroup.h
272   cmSystemTools.cxx
273   cmSystemTools.h
274   cmTarget.cxx
275   cmTarget.h
276   cmTargetExport.h
277   cmTest.cxx
278   cmTest.h
279   cmTestGenerator.cxx
280   cmTestGenerator.h
281   cmVariableWatch.cxx
282   cmVariableWatch.h
283   cmVersion.cxx
284   cmVersion.h
285   cmXMLParser.cxx
286   cmXMLParser.h
287   cmXMLSafe.cxx
288   cmXMLSafe.h
289   cmake.cxx
290   cmake.h
291   cmakewizard.cxx
292   cmakewizard.h
293
294   cm_sha2.h
295   cm_sha2.c
296   cm_utf8.h
297   cm_utf8.c
298   )
299
300 # Kdevelop only works on UNIX and not windows
301 if(UNIX)
302   set(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx)
303 endif()
304
305 # Xcode only works on Apple
306 if(APPLE)
307   set(SRCS ${SRCS}
308     cmXCodeObject.cxx
309     cmXCode21Object.cxx
310     cmGlobalXCodeGenerator.cxx
311     cmGlobalXCodeGenerator.h
312     cmLocalXCodeGenerator.cxx
313     cmLocalXCodeGenerator.h)
314 endif()
315
316
317 if (WIN32)
318   set(SRCS ${SRCS}
319     cmCallVisualStudioMacro.cxx
320     cmCallVisualStudioMacro.h
321     )
322
323   if(NOT UNIX)
324     set(SRCS ${SRCS}
325       cmGlobalBorlandMakefileGenerator.cxx
326       cmGlobalBorlandMakefileGenerator.h
327       cmGlobalMSYSMakefileGenerator.cxx
328       cmGlobalMinGWMakefileGenerator.cxx
329       cmGlobalNMakeMakefileGenerator.cxx
330       cmGlobalNMakeMakefileGenerator.h
331       cmGlobalJOMMakefileGenerator.cxx
332       cmGlobalJOMMakefileGenerator.h
333       cmGlobalVisualStudio6Generator.cxx
334       cmGlobalVisualStudio6Generator.h
335       cmGlobalVisualStudio71Generator.cxx
336       cmGlobalVisualStudio71Generator.h
337       cmGlobalVisualStudio7Generator.cxx
338       cmGlobalVisualStudio7Generator.h
339       cmGlobalVisualStudio8Generator.cxx
340       cmGlobalVisualStudio8Generator.h
341       cmGlobalVisualStudio9Generator.cxx
342       cmGlobalVisualStudio9Generator.h
343       cmVisualStudioGeneratorOptions.h
344       cmVisualStudioGeneratorOptions.cxx
345       cmVisualStudio10TargetGenerator.h
346       cmVisualStudio10TargetGenerator.cxx
347       cmLocalVisualStudio10Generator.cxx
348       cmLocalVisualStudio10Generator.h
349       cmGlobalVisualStudio10Generator.h
350       cmGlobalVisualStudio10Generator.cxx
351       cmGlobalVisualStudio11Generator.h
352       cmGlobalVisualStudio11Generator.cxx
353       cmGlobalVisualStudio12Generator.h
354       cmGlobalVisualStudio12Generator.cxx
355       cmGlobalVisualStudioGenerator.cxx
356       cmGlobalVisualStudioGenerator.h
357       cmGlobalWatcomWMakeGenerator.cxx
358       cmIDEFlagTable.h
359       cmIDEOptions.cxx
360       cmIDEOptions.h
361       cmLocalVisualStudio6Generator.cxx
362       cmLocalVisualStudio6Generator.h
363       cmLocalVisualStudio7Generator.cxx
364       cmLocalVisualStudio7Generator.h
365       cmLocalVisualStudioGenerator.cxx
366       cmLocalVisualStudioGenerator.h
367       cmVisualStudioSlnData.h
368       cmVisualStudioSlnData.cxx
369       cmVisualStudioSlnParser.h
370       cmVisualStudioSlnParser.cxx
371       cmVisualStudioWCEPlatformParser.h
372       cmVisualStudioWCEPlatformParser.cxx
373       cmWin32ProcessExecution.cxx
374       cmWin32ProcessExecution.h
375       )
376   endif()
377 endif ()
378
379 # Ninja support
380 set(SRCS ${SRCS}
381   cmGlobalNinjaGenerator.cxx
382   cmGlobalNinjaGenerator.h
383   cmNinjaTypes.h
384   cmLocalNinjaGenerator.cxx
385   cmLocalNinjaGenerator.h
386   cmNinjaTargetGenerator.cxx
387   cmNinjaTargetGenerator.h
388   cmNinjaNormalTargetGenerator.cxx
389   cmNinjaNormalTargetGenerator.h
390   cmNinjaUtilityTargetGenerator.cxx
391   cmNinjaUtilityTargetGenerator.h
392   )
393 if(WIN32 AND NOT CYGWIN AND NOT BORLAND)
394   set_source_files_properties(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501)
395   add_executable(cmcldeps cmcldeps.cxx)
396   target_link_libraries(cmcldeps CMakeLib)
397   install(TARGETS cmcldeps DESTINATION bin)
398 endif()
399
400 # create a library used by the command line and the GUI
401 add_library(CMakeLib ${SRCS})
402 target_link_libraries(CMakeLib cmsys
403   ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
404   ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
405   ${CMAKE_CURL_LIBRARIES} )
406
407 # On Apple we need CoreFoundation
408 if(APPLE)
409   target_link_libraries(CMakeLib "-framework CoreFoundation")
410 endif()
411
412 # On some platforms we need the rpcrt4 library for the VS 7 generators.
413 if(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
414   target_link_libraries(CMakeLib rpcrt4)
415 endif()
416
417 #
418 # CTestLib
419 #
420 include_directories(
421   "${CMake_SOURCE_DIR}/Source/CTest"
422   ${CMAKE_XMLRPC_INCLUDES}
423   ${CMAKE_CURL_INCLUDES}
424   )
425 #
426 # Sources for CTestLib
427 #
428 set(CTEST_SRCS cmCTest.cxx
429   CTest/cmProcess.cxx
430   CTest/cmCTestBatchTestHandler.cxx
431   CTest/cmCTestBuildAndTestHandler.cxx
432   CTest/cmCTestBuildCommand.cxx
433   CTest/cmCTestBuildHandler.cxx
434   CTest/cmCTestConfigureCommand.cxx
435   CTest/cmCTestConfigureHandler.cxx
436   CTest/cmCTestCoverageCommand.cxx
437   CTest/cmCTestCoverageHandler.cxx
438   CTest/cmParseMumpsCoverage.cxx
439   CTest/cmParseCacheCoverage.cxx
440   CTest/cmParseGTMCoverage.cxx
441   CTest/cmParsePHPCoverage.cxx
442   CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
443   CTest/cmCTestGenericHandler.cxx
444   CTest/cmCTestHandlerCommand.cxx
445   CTest/cmCTestLaunch.cxx
446   CTest/cmCTestMemCheckCommand.cxx
447   CTest/cmCTestMemCheckHandler.cxx
448   CTest/cmCTestMultiProcessHandler.cxx
449   CTest/cmCTestReadCustomFilesCommand.cxx
450   CTest/cmCTestRunScriptCommand.cxx
451   CTest/cmCTestRunTest.cxx
452   CTest/cmCTestScriptHandler.cxx
453   CTest/cmCTestSleepCommand.cxx
454   CTest/cmCTestStartCommand.cxx
455   CTest/cmCTestSubmitCommand.cxx
456   CTest/cmCTestSubmitHandler.cxx
457   CTest/cmCTestTestCommand.cxx
458   CTest/cmCTestTestHandler.cxx
459   CTest/cmCTestUpdateCommand.cxx
460   CTest/cmCTestUpdateHandler.cxx
461   CTest/cmCTestUploadCommand.cxx
462   CTest/cmCTestUploadHandler.cxx
463
464   CTest/cmCTestVC.cxx
465   CTest/cmCTestVC.h
466   CTest/cmCTestGlobalVC.cxx
467   CTest/cmCTestGlobalVC.h
468   CTest/cmCTestCVS.cxx
469   CTest/cmCTestCVS.h
470   CTest/cmCTestSVN.cxx
471   CTest/cmCTestSVN.h
472   CTest/cmCTestBZR.cxx
473   CTest/cmCTestBZR.h
474   CTest/cmCTestGIT.cxx
475   CTest/cmCTestGIT.h
476   CTest/cmCTestHG.cxx
477   CTest/cmCTestHG.h
478   )
479
480 # Build CTestLib
481 add_library(CTestLib ${CTEST_SRCS})
482 target_link_libraries(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
483
484 #
485 # Sources for CPack
486 #
487 set(CPACK_SRCS
488   CPack/cmCPackArchiveGenerator.cxx
489   CPack/cmCPackComponentGroup.cxx
490   CPack/cmCPackGeneratorFactory.cxx
491   CPack/cmCPackGenerator.cxx
492   CPack/cmCPackLog.cxx
493   CPack/cmCPackNSISGenerator.cxx
494   CPack/cmCPackSTGZGenerator.cxx
495   CPack/cmCPackTGZGenerator.cxx
496   CPack/cmCPackTarBZip2Generator.cxx
497   CPack/cmCPackTarCompressGenerator.cxx
498   CPack/cmCPackZIPGenerator.cxx
499   CPack/cmCPackDocumentVariables.cxx
500   CPack/cmCPackDocumentMacros.cxx
501   )
502
503 if(CYGWIN)
504   set(CPACK_SRCS ${CPACK_SRCS}
505     CPack/cmCPackCygwinBinaryGenerator.cxx
506     CPack/cmCPackCygwinSourceGenerator.cxx
507     )
508 endif()
509
510 if(UNIX)
511   set(CPACK_SRCS ${CPACK_SRCS}
512     CPack/cmCPackDebGenerator.cxx
513     CPack/cmCPackRPMGenerator.cxx
514     )
515 endif()
516
517 if(WIN32)
518   set(CPACK_SRCS ${CPACK_SRCS}
519     CPack/WiX/cmCPackWIXGenerator.cxx
520     CPack/WiX/cmWIXSourceWriter.cxx
521     CPack/WiX/cmWIXRichTextFormatWriter.cxx
522   )
523 endif()
524
525 if(APPLE)
526   set(CPACK_SRCS ${CPACK_SRCS}
527     CPack/cmCPackBundleGenerator.cxx
528     CPack/cmCPackDragNDropGenerator.cxx
529     CPack/cmCPackOSXX11Generator.cxx
530     CPack/cmCPackPackageMakerGenerator.cxx
531     )
532 endif()
533
534 # Build CPackLib
535 add_library(CPackLib ${CPACK_SRCS})
536 target_link_libraries(CPackLib CMakeLib)
537
538 if(APPLE)
539   add_executable(cmakexbuild cmakexbuild.cxx)
540   target_link_libraries(cmakexbuild CMakeLib)
541   add_executable(OSXScriptLauncher
542     CPack/OSXScriptLauncher.cxx)
543   target_link_libraries(OSXScriptLauncher cmsys)
544   target_link_libraries(OSXScriptLauncher "-framework CoreFoundation")
545 endif()
546
547 # Build CMake executable
548 add_executable(cmake cmakemain.cxx)
549 target_link_libraries(cmake CMakeLib)
550
551 # Build special executable for running programs on Windows 98.
552 # Included on any Windows (unconditional packaging required!).
553 if(WIN32)
554   if(NOT UNIX)
555     add_executable(cmw9xcom cmw9xcom.cxx)
556     target_link_libraries(cmw9xcom CMakeLib)
557     install(TARGETS cmw9xcom DESTINATION bin)
558   endif()
559 endif()
560
561 # Build CTest executable
562 add_executable(ctest ctest.cxx)
563 target_link_libraries(ctest CTestLib)
564
565 # Build CPack executable
566 add_executable(cpack CPack/cpack.cxx)
567 target_link_libraries(cpack CPackLib)
568
569 # Curses GUI
570 if(BUILD_CursesDialog)
571   include(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
572 endif()
573
574 # Qt GUI
575 option(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
576 if(BUILD_QtDialog)
577   add_subdirectory(QtDialog)
578 endif()
579
580 include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
581 include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
582
583 install(TARGETS cmake ctest cpack DESTINATION bin)
584 if(APPLE)
585   install(TARGETS cmakexbuild DESTINATION bin)
586 endif()
587
588 install(FILES cmCPluginAPI.h DESTINATION ${CMAKE_DATA_DIR}/include)