@@ -9,6 +9,7 @@ set_property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYP
99# Add option and check environment to determine if developer tests should be run
1010if ($ENV{OPENCOARRAYS_DEVELOPER} )
1111 option (CAF_RUN_DEVELOPER_TESTS "Run tests intended only for developers" ON )
12+ message ( STATUS "OpenCoarrays developer tests turned on" )
1213else ()
1314 option (CAF_RUN_DEVELOPER_TESTS "Run tests intended only for developers" OFF )
1415endif ()
@@ -20,11 +21,51 @@ endif()
2021
2122# Name project and specify source languages
2223# Parse version from .VERSION file so that more info can be added and easier to get from scripts
23- file ( STRINGS ".VERSION" OpenCoarraysVersion
24+ file (STRINGS ".VERSION" first_line
25+ LIMIT_COUNT 1
26+ )
27+
28+ string (REGEX MATCH "[0-9]+\\ .[0-9]+\\ .[0-9]+"
29+ OpenCoarraysVersion "${first_line} " )
30+
31+ if ((NOT (OpenCoarraysVersion MATCHES "[0-9]+\\ .[0-9]+\\ .[0-9]+" )) AND (EXISTS "${CMAKE_SOURCE_DIR} /.git" ))
32+ message ( STATUS "Build from git repository detected" )
33+ find_package (Git)
34+ if (GIT_FOUND)
35+ execute_process (COMMAND "${GIT_EXECUTABLE} " describe --abbrev=0
36+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
37+ RESULT_VARIABLE git_status
38+ OUTPUT_VARIABLE git_output
39+ OUTPUT_STRIP_TRAILING_WHITESPACE)
40+ if ((git_status STREQUAL "0" ) AND (git_output MATCHES "[0-9]+\\ .[0-9]+\\ .[0-9]+" ))
41+ set (OpenCoarraysVersion "${git_output} " )
42+ endif ()
43+ execute_process (COMMAND "${GIT_EXECUTABLE} " describe --always --dirty
44+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
45+ RESULT_VARIABLE git_status
46+ OUTPUT_VARIABLE full_git_describe
47+ OUTPUT_STRIP_TRAILING_WHITESPACE)
48+ if (NOT (git_status STREQUAL "0" ))
49+ set (full_git_describe NOTFOUND )
50+ endif ()
51+ else ()
52+ message ( WARNING "Could not find git executable!" )
53+ endif ()
54+ endif ()
55+
56+ if (NOT (OpenCoarraysVersion MATCHES "[0-9]+\\ .[0-9]+\\ .[0-9]+" ))
57+ message ( WARNING "Could not extract version from git, falling back on .VERSION, line 3." )
58+ file (STRINGS ".VERSION" OpenCoarraysVersion
2459 REGEX "[0-9]+\\ .[0-9]+\\ .[0-9]+"
25- )
60+ )
61+ endif ()
62+
63+ if (NOT full_git_describe)
64+ set (full_git_describe ${OpenCoarraysVersion} )
65+ endif ()
66+
2667project (opencoarrays VERSION "${OpenCoarraysVersion} " LANGUAGES C Fortran)
27- message ( STATUS "Building OpenCoarrays version: ${OpenCoarraysVersion } " )
68+ message ( STATUS "Building OpenCoarrays version: ${full_git_describe } " )
2869
2970#Print an error message on an attempt to build inside the source directory tree:
3071if ("${CMAKE_CURRENT_SOURCE_DIR} " STREQUAL "${CMAKE_CURRENT_BINARY_DIR} " )
@@ -552,18 +593,19 @@ if(opencoarrays_aware_compiler)
552593 add_mpi_test(image_status_test_1 4 ${tests_root} /unit/fail_images/image_status_test_1)
553594 if (CAF_ENABLE_FAILED_IMAGES)
554595 # No other way to check that image_fail_test_1 passes.
555- add_fault_tolerant_mpi_test(image_fail_test_1 4 ${tests_root} /unit/fail_images/image_fail_test_1 )
556- set_property ( TEST image_fail_test_1 PROPERTY FAIL_REGULAR_EXPRESSION "Test failed" )
557- set_property (TEST image_fail_test_1 PROPERTY PASS_REGULAR_EXPRESSION "Test passed " )
558- add_fault_tolerant_mpi_test(image_fail_and_sync_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_sync_test_1 )
559- if (CAF_RUN_DEVELOPER_TESTS OR $ENV{OPENCOARRAYS_DEVELOPER} )
596+ if (( NOT $ENV{TRAVIS} ) OR (CAF_RUN_DEVELOPER_TESTS OR $ENV{OPENCOARRAYS_DEVELOPER} ) )
597+ add_fault_tolerant_mpi_test( image_fail_test_1 4 ${tests_root} /unit/fail_images/image_fail_test_1 )
598+ set_property (TEST image_fail_test_1 PROPERTY FAIL_REGULAR_EXPRESSION "Test failed " )
599+ set_property ( TEST image_fail_test_1 PROPERTY PASS_REGULAR_EXPRESSION "Test passed" )
600+ add_fault_tolerant_mpi_test(image_fail_and_sync_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_sync_test_1 )
560601 add_fault_tolerant_mpi_test(image_fail_and_sync_test_2 4 ${tests_root} /unit/fail_images/image_fail_and_sync_test_2)
602+
603+ add_fault_tolerant_mpi_test(image_fail_and_sync_test_3 4 ${tests_root} /unit/fail_images/image_fail_and_sync_test_3)
604+ add_fault_tolerant_mpi_test(image_fail_and_status_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_status_test_1)
605+ add_fault_tolerant_mpi_test(image_fail_and_failed_images_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_failed_images_test_1)
606+ add_fault_tolerant_mpi_test(image_fail_and_stopped_images_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_stopped_images_test_1)
607+ add_fault_tolerant_mpi_test(image_fail_and_get_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_get_test_1)
561608 endif ()
562- add_fault_tolerant_mpi_test(image_fail_and_sync_test_3 4 ${tests_root} /unit/fail_images/image_fail_and_sync_test_3)
563- add_fault_tolerant_mpi_test(image_fail_and_status_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_status_test_1)
564- add_fault_tolerant_mpi_test(image_fail_and_failed_images_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_failed_images_test_1)
565- add_fault_tolerant_mpi_test(image_fail_and_stopped_images_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_stopped_images_test_1)
566- add_fault_tolerant_mpi_test(image_fail_and_get_test_1 4 ${tests_root} /unit/fail_images/image_fail_and_get_test_1)
567609 endif ()
568610 endif ()
569611else ()
0 commit comments