CMakeLists.txt 30.7 KB
Newer Older
1
CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
Ken Martin's avatar
Ken Martin committed
2

3
4
# configure the .h file
CONFIGURE_FILE(
5
6
7
  "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  )
8
9

# add the include path to find the .h 
10
11
12
INCLUDE_DIRECTORIES(
  "${CMake_BINARY_DIR}/Source"
  "${CMake_SOURCE_DIR}/Source"
13
14
  ${CMAKE_ZLIB_INCLUDES}
  ${CMAKE_EXPAT_INCLUDES}
15
  )
16
17
18
19

# let cmake know it is supposed to use it
ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)

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
66
67
68
OPTION(CMAKE_REGENERATE_YACCLEX
  "Regenerate YACC and LEXX files" OFF)
MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX)
IF(CMAKE_REGENERATE_YACCLEX)
  FIND_PROGRAM(YACC_EXECUTABLE
    NAMES yacc bison
    PATHS /usr/bin
    DOC "Yacc or Bison executable")
  FIND_PROGRAM(FLEX_EXECUTABLE
    NAMES flex
    PATHS /usr/bin
    DOC "Flex executable")
  MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE)
  IF(YACC_EXECUTABLE)
    SET(BISON_FLAGS)
    IF(YACC_EXECUTABLE MATCHES "bison")
      SET(BISON_FLAGS "--yacc")
    ENDIF(YACC_EXECUTABLE MATCHES "bison")
    SET(yacc_files)
    FOREACH(name cmCommandArgument)
      SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
      SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
      SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
      ADD_CUSTOM_COMMAND(
        OUTPUT "${dst}"
        DEPENDS "${src}"
        COMMAND ${YACC_EXECUTABLE}
        ARGS --name-prefix=${name}_yy --defines="${hdr}" -o"${dst}" "${src}")
      SET(yacc_files ${yacc_files} "${dst}")
    ENDFOREACH(name)
    ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files})
  ENDIF(YACC_EXECUTABLE)
  IF(FLEX_EXECUTABLE)
    SET(lex_files)
    FOREACH(name cmCommandArgument)
      SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
      SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
      SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
      ADD_CUSTOM_COMMAND(
        OUTPUT "${dst}"
        DEPENDS "${src}"
        COMMAND ${FLEX_EXECUTABLE}
        ARGS --prefix=${name}_yy --header-file="${hdr}" -o"${dst}" "${src}")
      SET(lex_files ${lex_files} "${dst}")
    ENDFOREACH(name)
    ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files})
  ENDIF(FLEX_EXECUTABLE)

ENDIF(CMAKE_REGENERATE_YACCLEX)
69
70
71
#
# Sources for CMakeLib
#
72
SET(SRCS
Andy Cedilnik's avatar
Andy Cedilnik committed
73
  cmBootstrapCommands.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
74
75
76
77
  cmCacheManager.cxx
  cmCacheManager.h
  cmCommands.cxx
  cmCommands.h
78
79
80
  cmCommandArgumentLexer.cxx
  cmCommandArgumentParser.cxx
  cmCommandArgumentParserHelper.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
81
82
  cmCustomCommand.cxx
  cmCustomCommand.h
Andy Cedilnik's avatar
Andy Cedilnik committed
83
84
85
86
87
88
  cmDepends.cxx
  cmDepends.h
  cmDependsC.cxx
  cmDependsC.h
  cmDependsFortran.cxx
  cmDependsFortran.h
89
90
  cmDependsFortranLexer.cxx
  cmDependsFortranParser.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
91
  cmDependsFortranParser.h
92
93
  cmDependsJava.cxx
  cmDependsJava.h
Andy Cedilnik's avatar
Andy Cedilnik committed
94
95
96
97
  cmDependsJavaLexer.cxx
  cmDependsJavaParser.cxx
  cmDependsJavaParserHelper.cxx
  cmDependsJavaParserHelper.h
Andy Cedilnik's avatar
Andy Cedilnik committed
98
99
100
101
102
103
104
  cmDocumentation.cxx
  cmDynamicLoader.cxx
  cmDynamicLoader.h
  cmGeneratedFileStream.cxx
  cmGlob.cxx
  cmGlobalGenerator.cxx
  cmGlobalGenerator.h
Ken Martin's avatar
Ken Martin committed
105
106
  cmGlobalUnixMakefileGenerator3.cxx
  cmGlobalUnixMakefileGenerator3.h
Andy Cedilnik's avatar
Andy Cedilnik committed
107
108
109
110
111
  cmListFileCache.cxx
  cmListFileCache.h
  cmListFileLexer.c
  cmLocalGenerator.cxx
  cmLocalGenerator.h
Ken Martin's avatar
Ken Martin committed
112
  cmLocalUnixMakefileGenerator3.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
113
114
115
116
  cmMakeDepend.cxx
  cmMakeDepend.h
  cmMakefile.cxx
  cmMakefile.h
117
  cmOrderLinkDirectories.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
118
119
120
121
122
123
124
125
  cmSourceFile.cxx
  cmSourceFile.h
  cmSourceGroup.cxx
  cmSourceGroup.h
  cmSystemTools.cxx
  cmSystemTools.h
  cmTarget.cxx
  cmTarget.h
126
127
  cmTest.cxx
  cmTest.h
Andy Cedilnik's avatar
Andy Cedilnik committed
128
129
130
131
132
133
134
135
136
137
138
  cmVariableWatch.cxx
  cmVariableWatch.h
  cmVersion.cxx
  cmVersion.h
  cmXMLParser.cxx
  cmXMLParser.h
  cmake.cxx
  cmake.h
  cmakewizard.cxx
  cmakewizard.h
  )
Ken Martin's avatar
Ken Martin committed
139

140
# Kdevelop only works on UNIX and not windows
Bill Hoffman's avatar
Bill Hoffman committed
141
IF(UNIX)
142
143
144
  SET(SRCS ${SRCS}
    cmGlobalKdevelopGenerator.cxx
    cmLocalKdevelopGenerator.cxx)
Bill Hoffman's avatar
Bill Hoffman committed
145
ENDIF(UNIX)
146
147
148
149
# XCode only works on apple
IF(APPLE)
  SET(SRCS ${SRCS}
    cmXCodeObject.cxx
150
    cmXCode21Object.cxx
151
    cmGlobalXCodeGenerator.cxx
152
153
154
    cmGlobalXCodeGenerator.h
    cmGlobalXCode21Generator.cxx
    cmGlobalXCode21Generator.h
155
156
157
    cmLocalXCodeGenerator.cxx
    cmLocalXCodeGenerator.h)
ENDIF(APPLE)
158
159


Ken Martin's avatar
Ken Martin committed
160
IF (WIN32)
161
162
  IF(NOT UNIX)
    SET(SRCS ${SRCS}
163
164
165
166
167
168
169
170
171
172
173
174
175
      cmGlobalBorlandMakefileGenerator.cxx
      cmGlobalNMakeMakefileGenerator.cxx
      cmGlobalVisualStudio6Generator.cxx
      cmLocalVisualStudio6Generator.cxx
      cmGlobalBorlandMakefileGenerator.h
      cmGlobalNMakeMakefileGenerator.h
      cmGlobalVisualStudio6Generator.h
      cmLocalVisualStudio6Generator.h
      cmWin32ProcessExecution.cxx
      cmWin32ProcessExecution.h
      )
    IF(NOT MINGW)
      SET(SRCS ${SRCS}
176
177
        cmGlobalVisualStudio71Generator.h
        cmGlobalVisualStudio8Generator.h
178
179
        cmGlobalVisualStudio7Generator.h
        cmLocalVisualStudio7Generator.h
180
        cmGlobalVisualStudio8Generator.cxx
181
182
183
184
        cmGlobalVisualStudio71Generator.cxx
        cmGlobalVisualStudio7Generator.cxx
        cmLocalVisualStudio7Generator.cxx)
    ENDIF(NOT MINGW)
185
  ENDIF(NOT UNIX)
Ken Martin's avatar
Ken Martin committed
186
187
ENDIF (WIN32)

188
# create a library used by the command line and the GUI
189
ADD_LIBRARY(CMakeLib ${SRCS})
190
TARGET_LINK_LIBRARIES(CMakeLib cmsys ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES})
191
192
193
194
195
196
197
198
199
200
201
IF (UNIX)
  TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
ENDIF (UNIX)
IF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  # On Visual Studio we need rpcrt4.lib for cmVisualStudio7 generator.
  TARGET_LINK_LIBRARIES(CMakeLib rpcrt4.lib)
ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO)

#
# CTestLib
#
202
203
204
INCLUDE_DIRECTORIES(
  "${CMAKE_SOURCE_DIR}/Source/CTest"
  ${CMAKE_XMLRPC_INCLUDES}
Andy Cedilnik's avatar
Andy Cedilnik committed
205
  ${CMAKE_CURL_INCLUDES}
206
  )
207
208
209
#
# Sources for CTestLib
#
Andy Cedilnik's avatar
Andy Cedilnik committed
210
SET(CMTEST_SRCS cmCTest.cxx 
211
  CTest/cmCTestBuildAndTestHandler.cxx
212
  CTest/cmCTestBuildCommand.cxx
Ken Martin's avatar
Ken Martin committed
213
  CTest/cmCTestBuildHandler.cxx
214
  CTest/cmCTestConfigureCommand.cxx
Ken Martin's avatar
Ken Martin committed
215
  CTest/cmCTestConfigureHandler.cxx
216
  CTest/cmCTestCoverageCommand.cxx
Ken Martin's avatar
Ken Martin committed
217
  CTest/cmCTestCoverageHandler.cxx
218
  CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
219
  CTest/cmCTestGenericHandler.cxx
220
  CTest/cmCTestHandlerCommand.cxx
221
  CTest/cmCTestMemCheckCommand.cxx
222
  CTest/cmCTestMemCheckHandler.cxx
223
  CTest/cmCTestRunScriptCommand.cxx
224
  CTest/cmCTestScriptHandler.cxx
225
  CTest/cmCTestSleepCommand.cxx
226
  CTest/cmCTestStartCommand.cxx
227
228
229
  CTest/cmCTestSubmitCommand.cxx
  CTest/cmCTestSubmitHandler.cxx
  CTest/cmCTestTestCommand.cxx
230
231
232
  CTest/cmCTestTestHandler.cxx
  CTest/cmCTestUpdateCommand.cxx
  CTest/cmCTestUpdateHandler.cxx
Andy Cedilnik's avatar
Andy Cedilnik committed
233
  )
Ken Martin's avatar
oops    
Ken Martin committed
234

235
236
# Build CTestLib
ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
237
TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
238

239
240
# Build CMake executable
ADD_EXECUTABLE(cmake cmakemain.cxx)
Ken Martin's avatar
Ken Martin committed
241
TARGET_LINK_LIBRARIES(cmake CMakeLib)
242
ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
Ken Martin's avatar
Ken Martin committed
243
TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
244

245
246
# Build special executable for running programs on Windows 98
IF(WIN32)
247
248
249
250
  IF(NOT UNIX)
    ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
    TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  ENDIF(NOT UNIX)
251
252
253
254
255
ENDIF(WIN32)

# Build CTest executable
ADD_EXECUTABLE(ctest ctest.cxx)
TARGET_LINK_LIBRARIES(ctest CTestLib)
Bill Hoffman's avatar
Bill Hoffman committed
256

257
# Curses GUI
Bill Hoffman's avatar
Bill Hoffman committed
258
259
260
261
262
263
264
IF (UNIX)
  INCLUDE (${CMake_SOURCE_DIR}/Modules/FindCurses.cmake OPTIONAL)
  IF (CURSES_LIBRARY)
    INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  ENDIF (CURSES_LIBRARY)
ENDIF (UNIX)

265
266
267
268
269
270
271
272
# MFC GUI
# MFC libraries are only available on Visual Studio
IF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  SUBDIRS(MFCDialog)
ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO)

# WX Widgets GUI
OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE)
273
274
275
276
277
MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
IF(CMAKE_BUILD_WX_DIALOG)
  SUBDIRS(WXDialog)
ENDIF(CMAKE_BUILD_WX_DIALOG)

278
# Testing
279
IF (NOT DART_ROOT)
Andy Cedilnik's avatar
Andy Cedilnik committed
280
  SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
281
282
ENDIF (NOT DART_ROOT)

283
IF(BUILD_TESTING)
284
285
286
287
288
289
290
  # This variable is set by cmake, however to
  # test cmake we want to make sure that 
  # the ctest from this cmake is used for testing
  # and not the ctest from the cmake building and testing
  # cmake.
  SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest")

291
292
293
294
  # Should the long tests be run?
  OPTION(CMAKE_RUN_LONG_TESTS "Should the long tests be run (such as Bootstrap)." ON)
  MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)

295
296
297
298
299
300
301
302
303
  ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/CommandLineTest"
    "${CMake_BINARY_DIR}/Tests/CommandLineTest"
    --build-two-config 
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project CommandLineTest
    --test-command CommandLineTest)
Andy Cedilnik's avatar
Andy Cedilnik committed
304

305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
  ADD_TEST(CustomCommand  ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/CustomCommand"
    "${CMake_BINARY_DIR}/Tests/CustomCommand"
    --build-two-config
    --build-generator ${CMAKE_GENERATOR}
    --build-project CustomCommand
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
    --test-command CustomCommand
    )

  ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/FindPackageTest"
    "${CMake_BINARY_DIR}/Tests/FindPackageTest"
    --build-two-config
    --build-generator ${CMAKE_GENERATOR}
    --build-project FindPackageTest
    --build-makeprogram ${MAKEPROGRAM}
    --test-command FindPackageTest)

  ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/SystemInformation"
    "${CMake_BINARY_DIR}/Tests/SystemInformation"
    --build-two-config
    --build-generator ${CMAKE_GENERATOR}
    --build-project DumpInformation
    --build-makeprogram ${MAKEPROGRAM}
    --test-command DumpInformation)

  ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/StringFileTest"
    "${CMake_BINARY_DIR}/Tests/StringFileTest"
    --build-two-config
    --build-generator ${CMAKE_GENERATOR}
    --build-project StringFileTest
    --build-makeprogram ${MAKEPROGRAM}
    --test-command StringFileTest)
Andy Cedilnik's avatar
Andy Cedilnik committed
346

347
348
349
350
351
352
353
354
355
356
357
358
  ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/TryCompile"
    "${CMake_BINARY_DIR}/Tests/TryCompile"
    --build-generator ${CMAKE_GENERATOR}
    --build-project TryCompile
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command TryCompile)

  ADD_TEST(simple ${CMAKE_CTEST_COMMAND}
    --build-and-test 
Andy Cedilnik's avatar
Andy Cedilnik committed
359
360
    "${CMake_SOURCE_DIR}/Tests/Simple"
    "${CMake_BINARY_DIR}/Tests/Simple"
361
362
363
364
365
366
    --build-generator ${CMAKE_GENERATOR}
    --build-project Simple
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command simple)

367
368
369
370
371
372
373
374
375
376
377
#  ADD_TEST(SameName  ${CMAKE_CTEST_COMMAND}
#    --build-and-test 
#    "${CMake_SOURCE_DIR}/Tests/SameName"
#    "${CMake_BINARY_DIR}/Tests/SameName"
#    --build-generator ${CMAKE_GENERATOR}
#    --build-project SameName
#    --build-makeprogram ${MAKEPROGRAM}
#    --build-two-config
#    --test-command   
#    "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")

378
379
380
381
382
383
384
385
386
387
388
  ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/OutOfSource"
    "${CMake_BINARY_DIR}/Tests/OutOfSource"
    --build-generator ${CMAKE_GENERATOR}
    --build-project OutOfSource
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command 
    "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")

389
390
  ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND}
    --build-and-test 
Andy Cedilnik's avatar
Andy Cedilnik committed
391
392
    "${CMake_SOURCE_DIR}/Tests/PreOrder"
    "${CMake_BINARY_DIR}/Tests/PreOrder"
393
394
395
396
397
398
    --build-generator ${CMAKE_GENERATOR}
    --build-project PreOrder
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command simple)

399
400
401
402
403
404
405
406
407
408
  ADD_TEST(conly  ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/COnly"
    "${CMake_BINARY_DIR}/Tests/COnly"
    --build-generator ${CMAKE_GENERATOR}
    --build-project conly
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command   conly)

Andy Cedilnik's avatar
Andy Cedilnik committed
409
410
411
412
413
414
415
416
417
418
  ADD_TEST(MacroTest ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/MacroTest"
    "${CMake_BINARY_DIR}/Tests/MacroTest"
    --build-generator ${CMAKE_GENERATOR}
    --build-project littleMacroTest 
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command   miniMacroTest)

Andy Cedilnik's avatar
Andy Cedilnik committed
419
  SET(SimpleInstallInstallDir 
420
    "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
Andy Cedilnik's avatar
Andy Cedilnik committed
421
422
423
424
425
426
427
428
429
  ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
    "${CMake_BINARY_DIR}/Tests/SimpleInstall"
    --build-generator ${CMAKE_GENERATOR}
    --build-project TestSimpleInstall
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --build-options
Andy Cedilnik's avatar
Andy Cedilnik committed
430
    "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
431
    --test-command   ${SimpleInstallInstallDir}/bin/SimpleInstallExe)
432
433
  ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
    --build-and-test 
434
    "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
435
436
437
438
439
440
    "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
    --build-generator ${CMAKE_GENERATOR}
    --build-project TestSimpleInstall
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --build-options
Andy Cedilnik's avatar
Andy Cedilnik committed
441
442
    "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
    "-DSTAGE2:BOOL=1"
443
    --test-command   ${SimpleInstallInstallDir}/bin/SimpleInstallS2)
Andy Cedilnik's avatar
Andy Cedilnik committed
444

445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
  ADD_TEST(X11  ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/X11"
    "${CMake_BINARY_DIR}/Tests/X11"
    --build-generator ${CMAKE_GENERATOR}
    --build-project UseX11
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command  UseX11)

  ADD_TEST(LoadedCommand  ${CMAKE_CTEST_COMMAND}
    --build-and-test 
    "${CMake_SOURCE_DIR}/Tests/LoadCommand"
    "${CMake_BINARY_DIR}/Tests/LoadCommand"
    --build-generator ${CMAKE_GENERATOR}
    --build-project LoadedCommand
    --build-makeprogram ${MAKEPROGRAM}
    --build-two-config
    --test-command  LoadedCommand)

  ADD_TEST(LoadedCommandOneConfig  ${CMAKE_CTEST_COMMAND}
    --build-and-test 
467
    "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
468
469
470
471
472
473
    "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
    --build-generator ${CMAKE_GENERATOR}
    --build-project LoadedCommand
    --build-makeprogram ${MAKEPROGRAM}
    --test-command  LoadedCommand 
    )
474
475
476
477
478
479
480

  # Como does not seem to support shared libraries.
  GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  IF(CMAKE_BASE_NAME MATCHES "^como$")
    SET(COMPILER_IS_COMO 1)
  ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  IF(NOT COMPILER_IS_COMO)
481
482
483
484
485
486
487
488
489
490
491
492
493
494
    ADD_TEST(complex   ${CMAKE_CTEST_COMMAND}
      --build-and-test 
      "${CMake_SOURCE_DIR}/Tests/Complex"
      "${CMake_BINARY_DIR}/Tests/Complex"
      --build-two-config
      --build-generator ${CMAKE_GENERATOR}
      --build-project complex
      --build-makeprogram ${MAKEPROGRAM}
      --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
      --test-command complex 
      )

    ADD_TEST(complexOneConfig  ${CMAKE_CTEST_COMMAND}
      --build-and-test
495
      "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
496
497
498
499
500
501
502
      "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
      --build-generator ${CMAKE_GENERATOR}
      --build-project complex
      --build-makeprogram ${MAKEPROGRAM}
      --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
      --test-command complex)

Ken Martin's avatar
Ken Martin committed
503
504
505
506
507
508
509
510
511
512
#    ADD_TEST(complexRelativePaths  ${CMAKE_CTEST_COMMAND}
#      --build-and-test
#      "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
#      "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
#      --build-generator ${CMAKE_GENERATOR}
#      --build-project complex
#      --build-makeprogram ${MAKEPROGRAM}
#      --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin" 
#      --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
#      --test-command complex)
513

514
515
  ENDIF(NOT COMPILER_IS_COMO)

516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
  ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Example"
    "${CMake_BINARY_DIR}/Example"
    --build-generator ${CMAKE_GENERATOR}
    --build-project HELLO
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
    --test-command helloDemo
    )

  ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Testing"
    "${CMake_BINARY_DIR}/Tests/Testing"
    --build-generator ${CMAKE_GENERATOR}
    --build-project testing
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
    --test-command testing
    )
Andy Cedilnik's avatar
Andy Cedilnik committed
537

538
539
540
541
542
543
544
545
546
547
  ADD_TEST(wrapping  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Wrapping"
    "${CMake_BINARY_DIR}/Tests/Wrapping"
    --build-generator ${CMAKE_GENERATOR}
    --build-project wrapping
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
    --test-command wrapping
    )
548

Bill Hoffman's avatar
Bill Hoffman committed
549
  INCLUDE (FindQt3)
550
551
552
553
554
555
  MARK_AS_ADVANCED(
    QT_INCLUDE_PATH
    QT_MOC_EXE
    QT_QT_LIBRARY
    QT_UIC_EXE)

556
  IF (QT_FOUND AND QT_UIC_EXECUTABLE)
557
558
559
560
561
562
563
564
565
566
    ADD_TEST(qtwrapping  ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/Wrapping"
      "${CMake_BINARY_DIR}/Tests/Wrapping"
      --build-generator ${CMAKE_GENERATOR}
      --build-project Wrapping
      --build-makeprogram ${MAKEPROGRAM}
      --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
      --test-command qtwrapping
      )
567
  ENDIF (QT_FOUND AND QT_UIC_EXECUTABLE)
568

569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
  ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/TestDriver"
    "${CMake_BINARY_DIR}/Tests/TestDriver"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
    --build-project TestDriverTest
    --test-command TestDriverTest test1
    )

  ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/TestDriver"
    "${CMake_BINARY_DIR}/Tests/TestDriver"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
    --build-project TestDriverTest
    --test-command TestDriverTest test2
    )

  ADD_TEST(testdriver3  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/TestDriver"
    "${CMake_BINARY_DIR}/Tests/TestDriver"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
    --build-project TestDriverTest
    --test-command TestDriverTest subdir/test3
    )

  ADD_TEST(dependency_w_libout  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Dependency"
    "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
Andy Cedilnik's avatar
Andy Cedilnik committed
606
607
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
    --build-project Dependency 
608
609
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
Andy Cedilnik's avatar
Andy Cedilnik committed
610
611
612
613
    --build-options
    -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
    --test-command exec
    )
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664


  ADD_TEST(dependency_wo_lib_out   ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Dependency"
    "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project Dependency 
    --test-command exec
    )

  ADD_TEST(dependency2  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Dependency"
    "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut" 
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project Dependency 
    --build-options
    -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
    --test-command exec2
    )

  ADD_TEST(dependency3  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Dependency"
    "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project Dependency 
    --build-options
    -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
    --test-command exec3)

  ADD_TEST(dependency4   ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Dependency"
    "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project Dependency 
    --build-options
    -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
    --test-command exec4
    )

665
666
667
668
669
  ADD_TEST(JumpWithLibOut  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Jump"
    "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
670
    --build-project Jump
671
672
673
674
675
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-options
    -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
    --test-command jumpExecutable
Andy Cedilnik's avatar
Andy Cedilnik committed
676
    )
677
678
679
680
681
682

  ADD_TEST(JumpNoLibOut  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/Jump"
    "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
Bill Hoffman's avatar
Bill Hoffman committed
683
    --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
684
    --build-project Jump 
685
686
687
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --test-command jumpExecutable
Andy Cedilnik's avatar
Andy Cedilnik committed
688
    )
689

690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
  ADD_TEST(linkline   ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/LinkLine"
    "${CMake_BINARY_DIR}/Tests/LinkLine"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project Linkline
    --test-command Exec
    )

  ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
    "${CMake_BINARY_DIR}/Tests/LinkLineOrder" 
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
    --build-project LinkLineOrder
    --test-command Exec1
    )

  ADD_TEST(linkorder2  ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
    "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project LinkLineOrder
    --test-command Exec2
    )

723
724
725
726
727
728
729
730
731
732
733
  ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
    "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
    --build-generator ${CMAKE_GENERATOR}
    --build-project ExternalOBJ
    --build-makeprogram ${MAKEPROGRAM}
    --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
    --test-command executable
    )

734
735
736
737
738
739
740
741
  ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
    --build-and-test
    "${CMake_SOURCE_DIR}/Source/kwsys"
    "${CMake_BINARY_DIR}/Tests/kwsys"
    --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
    --build-generator ${CMAKE_GENERATOR}
    --build-makeprogram ${MAKEPROGRAM}
    --build-project kwsys
742
    --test-command  testIOS
743
    )
744

Andy Cedilnik's avatar
Andy Cedilnik committed
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
  IF (WIN32)
    ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/SubDir"
      "${CMake_BINARY_DIR}/Tests/SubDir"
      --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
      --build-generator ${CMAKE_GENERATOR}
      --build-makeprogram ${MAKEPROGRAM}
      --build-project SUBDIR
      --test-command test 
      "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
      "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
      )
  ELSE (WIN32)
    ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/SubDir"
      "${CMake_BINARY_DIR}/Tests/SubDir"
      --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
      --build-generator ${CMAKE_GENERATOR}
      --build-makeprogram ${MAKEPROGRAM}
      --build-project SUBDIR
      --test-command test 
      "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
      "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
      )
  ENDIF (WIN32)    
Ken Martin's avatar
Ken Martin committed
772

773
774
775
776
777
778
779
780
781
782
783
784
785
  IF("${CMAKE_GENERATOR}" MATCHES "Makefile")
    ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/MakeClean"
      "${CMake_BINARY_DIR}/Tests/MakeClean"
      --build-generator ${CMAKE_GENERATOR}
      --build-project MakeClean
      --build-makeprogram ${MAKEPROGRAM}
      --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
      --test-command check_clean
      )
  ENDIF("${CMAKE_GENERATOR}" MATCHES "Makefile")

786
787
788
789
790
791
792
793
794
795
796
  IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
    ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
      --build-and-test 
      "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
      "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
      --build-two-config
      --build-generator ${CMAKE_GENERATOR}
      --build-project VSExternalInclude
      --build-makeprogram ${MAKEPROGRAM}
      --test-command VSExternalInclude)
  ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
797

798
  IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
Bill Hoffman's avatar
Bill Hoffman committed
799
800
801
802
803
804
805
806
807
808
    ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/BundleTest"
      "${CMake_BINARY_DIR}/Tests/BundleTest"
      --build-two-config
      --build-generator ${CMAKE_GENERATOR}
      --build-makeprogram ${MAKEPROGRAM}
      --build-project BundleTest
      --test-command  BundleTest.app/Contents/MacOS/BundleTest)
    
809
810
    ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
      --build-and-test
811
812
      "${CMake_SOURCE_DIR}/Tests/ObjC++"
      "${CMake_BINARY_DIR}/Tests/ObjC++"
813
814
815
816
817
      --build-generator ${CMAKE_GENERATOR}
      --build-makeprogram ${MAKEPROGRAM}
      --build-project  objc++
      --test-command  objc++
      )
818
  ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
819

820
  IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
Andy Cedilnik's avatar
Andy Cedilnik committed
821
    CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
Andy Cedilnik's avatar
Andy Cedilnik committed
822
      "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
Andy Cedilnik's avatar
Andy Cedilnik committed
823
    ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
Andy Cedilnik's avatar
Andy Cedilnik committed
824
      -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
825
      --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
Andy Cedilnik's avatar
Andy Cedilnik committed
826
      )
827
828
829
830
    CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
      "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
    ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
      -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
831
832
833
834
835
836
837
      --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
      )
    CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
      "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES)
    ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND}
      -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V
      --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
838
      )
839
  ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
840

841
  IF("${CMAKE_GENERATOR}" MATCHES Xcode)
842
    SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
843
  ENDIF("${CMAKE_GENERATOR}" MATCHES Xcode)
844
845
846
847
  IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
    # If there is CMakeLists.txt in the binary tree, assume in-source build
    SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
848
  IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
Andy Cedilnik's avatar
Andy Cedilnik committed
849
850
851
852
853
    ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
      --build-and-test
      ${CMake_SOURCE_DIR}
      ${CMake_BINARY_DIR}/Tests/BootstrapTest
      --build-nocmake 
Andy Cedilnik's avatar
Andy Cedilnik committed
854
      --build-noclean
Andy Cedilnik's avatar
Andy Cedilnik committed
855
      --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
Ken Martin's avatar
Ken Martin committed
856
      --build-generator "${CMAKE_GENERATOR}"
857
      --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
858
  ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
859

860
861
862
863
  IF(CMAKE_GENERATOR MATCHES "Makefiles")
    # see if we can find a fortran compiler on the machine
    # if so, add the fortran test and see if it works.
    SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95 
864
865
      lf95 xlf95 fort gfortran f90  pgf90   xlf90  
      epcf90 f77  fort77 frt pgf77  xlf  fl32 af77 g77  )
866
867
868
869
870
871
872
873
    FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
    MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
    IF(CMAKE_Fortran_COMPILER_FULLPATH)
      ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
        --build-and-test 
        "${CMake_SOURCE_DIR}/Tests/Fortran"
        "${CMake_BINARY_DIR}/Tests/Fortran"
        --build-generator ${CMAKE_GENERATOR}
874
        --build-project testf
875
876
877
878
        --build-makeprogram ${MAKEPROGRAM}
        --build-two-config
        --test-command testf)
    ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
879
880

    INCLUDE(FindJava)
881
    IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
882
883
884
885
886
      GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
      FIND_FILE(JNI_H jni.h
        "${JNIPATH}/../include"
        "${JNIPATH}/../java/include")
      IF(JNI_H)
Bill Hoffman's avatar
Bill Hoffman committed
887
        FILE(READ "${JNI_H}" JNI_FILE)
888
        IF("${JNI_FILE}" MATCHES "JDK1_2")
889
890
891
892
893
894
895
896
897
898
          ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
            --build-and-test 
            "${CMake_SOURCE_DIR}/Tests/Java"
            "${CMake_BINARY_DIR}/Tests/Java"
            --build-generator ${CMAKE_GENERATOR}
            --build-project hello
            --build-makeprogram ${MAKEPROGRAM}
            --build-two-config 
            --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
            --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
899
        ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
900
      ENDIF(JNI_H) 
901
    ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
902
  ENDIF(CMAKE_GENERATOR MATCHES "Makefiles")
Bill Hoffman's avatar
Bill Hoffman committed
903
    
Andy Cedilnik's avatar
Andy Cedilnik committed
904
  IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
905
    # Will be set if the wxwindows gui is on
906
907
908
909
910
911
912
913
    ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
      --build-and-test
      "${CMake_SOURCE_DIR}/Tests/UseWX"
      "${CMake_BINARY_DIR}/Tests/UseWX"
      --build-generator ${CMAKE_GENERATOR}
      --build-makeprogram ${MAKEPROGRAM}
      --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
      --build-project UsewxWindows
914
      --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
915
      --test-command UseWX
Andy Cedilnik's avatar
Andy Cedilnik committed
916
      )
Andy Cedilnik's avatar
Andy Cedilnik committed
917
  ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
918

919
  IF(UNIX)
920
    STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
Andy Cedilnik's avatar
Andy Cedilnik committed
921
      PREFIX_IS_FOR_TEST)
922
    IF(PREFIX_IS_FOR_TEST)
923
924
      CONFIGURE_FILE(
        ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
Andy Cedilnik's avatar
Andy Cedilnik committed
925
        ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
926
927
        @ONLY IMMEDIATE
        )
Andy Cedilnik's avatar
Andy Cedilnik committed
928
      ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
929
    ENDIF(PREFIX_IS_FOR_TEST)
930
  ENDIF(UNIX)
931

932
933
ENDIF(BUILD_TESTING)

Bill Hoffman's avatar
Bill Hoffman committed
934
935
INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
936

Ken Martin's avatar
Ken Martin committed
937
INSTALL_TARGETS(/bin cmake)
938
INSTALL_TARGETS(/bin ctest)
939
INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)