Revision: 60543
          http://sourceforge.net/p/brlcad/code/60543
Author:   starseeker
Date:     2014-05-08 12:55:23 +0000 (Thu, 08 May 2014)
Log Message:
-----------
Generalize the 'check style' mechanism so it can support more tests than just 
astyle.

Modified Paths:
--------------
    brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake

Added Paths:
-----------
    brlcad/trunk/misc/CMake/style/
    brlcad/trunk/misc/CMake/style/astyle.cmake.in
    brlcad/trunk/misc/CMake/style/test_list.cmake

Removed Paths:
-------------
    brlcad/trunk/misc/CMake/astyle.cmake.in

Modified: brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake
===================================================================
--- brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake        2014-05-08 01:34:10 UTC 
(rev 60542)
+++ brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake        2014-05-08 12:55:23 UTC 
(rev 60543)
@@ -153,32 +153,41 @@
   endif(NOERROR_FLAG_CXX AND BRLCAD_ENABLE_STRICT)
 endmacro(CXX_NO_STRICT cxx_srcslist)
 
+macro(ADD_STYLE_TEST srcfile test_name)
+  # Generated files won't conform to our style guidelines
+  get_property(IS_GENERATED SOURCE ${srcfile} PROPERTY GENERATED)
+  if(NOT IS_GENERATED)
+    get_filename_component(root_name ${srcfile} NAME_WE)
+    string(MD5 path_md5 "${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}")
+    set(outfiles_root 
"${CMAKE_CURRENT_BINARY_DIR}/validation/${root_name}_${path_md5}_${test_name}")
+    set(srcfile_tmp "${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}")
+    set(stampfile_tmp "${stampfile}")
+    configure_file(${BRLCAD_SOURCE_DIR}/misc/CMake/style/${test_name}.cmake.in 
${outfiles_root}.cmake @ONLY)
+    add_custom_command(
+      OUTPUT ${outfiles_root}.checked
+      COMMAND ${CMAKE_COMMAND} -P ${outfiles_root}.cmake
+      DEPENDS ${srcfile} ${${test_name}_test_deps}
+      COMMENT "Validating style of ${srcfile}"
+      )
+    set_source_files_properties(${srcfile} PROPERTIES OBJECT_DEPENDS 
${outfiles_root}.checked)
+  endif(NOT IS_GENERATED)
+endmacro(ADD_STYLE_TEST srcfile test_name)
+
 # BRL-CAD style checking test
 macro(VALIDATE_STYLE srcslist)
 if(BRLCAD_STYLE_VALIDATE)
+  include(${BRLCAD_SOURCE_DIR}/misc/CMake/style/test_list.cmake)
   make_directory(${CMAKE_CURRENT_BINARY_DIR}/validation)
-  foreach(srcfile ${srcslist})
-    # Generated files won't conform to our style guidelines
-    get_property(IS_GENERATED SOURCE ${srcfile} PROPERTY GENERATED)
-    if(NOT IS_GENERATED)
-      get_filename_component(root_name ${srcfile} NAME_WE)
-      string(MD5 path_md5 "${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}")
-      set(outfiles_root 
"${CMAKE_CURRENT_BINARY_DIR}/validation/${root_name}_${path_md5}")
-      set(srcfile_tmp "${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}")
-      set(stampfile_tmp "${stampfile}")
-      configure_file(${BRLCAD_SOURCE_DIR}/misc/CMake/astyle.cmake.in 
${outfiles_root}.cmake @ONLY)
-      add_custom_command(
-       OUTPUT ${outfiles_root}.checked
-       COMMAND ${CMAKE_COMMAND} -P ${outfiles_root}.cmake
-       DEPENDS ${srcfile} ${ASTYLE_EXECUTABLE_TARGET}
-       COMMENT "Validating style of ${srcfile}"
-       )
-      set_source_files_properties(${srcfile} PROPERTIES OBJECT_DEPENDS 
${outfiles_root}.checked)
-    endif(NOT IS_GENERATED)
-  endforeach(srcfile ${srcslist})
+  foreach(test_name ${BRLCAD_STYLE_TESTS})
+    foreach(srcfile ${srcslist})
+      ADD_STYLE_TEST(${srcfile} ${test_name})
+    endforeach(srcfile ${srcslist})
+  endforeach(test_name ${BRLCAD_STYLE_TESTS})
 endif(BRLCAD_STYLE_VALIDATE)
 endmacro(VALIDATE_STYLE)
 
+# For this to work, any test which can cause the validation to fail must
+# create a <some_filename>.invalid stamp file in the appropriate directory.
 macro(VALIDATE_TARGET_STYLE targetname)
   if(BRLCAD_STYLE_VALIDATE)
       configure_file(${BRLCAD_SOURCE_DIR}/misc/CMake/validate_style.cmake.in 
${CMAKE_CURRENT_BINARY_DIR}/${targetname}_validate.cmake @ONLY)

Deleted: brlcad/trunk/misc/CMake/astyle.cmake.in
===================================================================
--- brlcad/trunk/misc/CMake/astyle.cmake.in     2014-05-08 01:34:10 UTC (rev 
60542)
+++ brlcad/trunk/misc/CMake/astyle.cmake.in     2014-05-08 12:55:23 UTC (rev 
60543)
@@ -1,66 +0,0 @@
-#                A S T Y L E . C M A K E . I N
-# BRL-CAD
-#
-# Copyright (c) 2012-2014 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-set(outfiles_root @outfiles_root@)
-set(stamp_file ${outfiles_root}.checked)
-set(stamp_valid ${outfiles_root}.valid)
-set(stamp_invalid ${outfiles_root}.invalid)
-set(outfile_tmp ${outfiles_root}.tmp)
-set(BRLCAD_ENABLE_VERBOSE_PROGRESS @BRLCAD_ENABLE_VERBOSE_PROGRESS@)
-execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_file}")
-execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_valid}")
-execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_invalid}")
-execute_process(COMMAND "@CMAKE_COMMAND@" -E copy "@srcfile_tmp@" 
"${outfile_tmp}")
-execute_process(COMMAND "@ASTYLE_EXECUTABLE@" 
--options=@BRLCAD_SOURCE_DIR@/misc/astyle.opt "${outfile_tmp}" OUTPUT_QUIET 
ERROR_QUIET)
-execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${outfile_tmp}.orig")
-execute_process(COMMAND "@CMAKE_COMMAND@" -E compare_files  "@srcfile_tmp@"  
"${outfile_tmp}" RESULT_VARIABLE CMDRESULT OUTPUT_QUIET ERROR_QUIET)
-execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "${stamp_file}")
-if(CMDRESULT)
-  if(BRLCAD_ENABLE_VERBOSE_PROGRESS)
-    message(WARNING "Style failure: compare @srcfile_tmp@ with ${outfile_tmp} 
to see differences")
-  endif(BRLCAD_ENABLE_VERBOSE_PROGRESS)
-  file(WRITE "${stamp_invalid}" "@srcfile_tmp@")
-else(CMDRESULT)
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${outfile_tmp}")
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "${stamp_valid}")
-endif(CMDRESULT)
-
-
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8

Copied: brlcad/trunk/misc/CMake/style/astyle.cmake.in (from rev 60542, 
brlcad/trunk/misc/CMake/astyle.cmake.in)
===================================================================
--- brlcad/trunk/misc/CMake/style/astyle.cmake.in                               
(rev 0)
+++ brlcad/trunk/misc/CMake/style/astyle.cmake.in       2014-05-08 12:55:23 UTC 
(rev 60543)
@@ -0,0 +1,66 @@
+#                A S T Y L E . C M A K E . I N
+# BRL-CAD
+#
+# Copyright (c) 2012-2014 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+set(outfiles_root @outfiles_root@)
+set(stamp_file ${outfiles_root}.checked)
+set(stamp_valid ${outfiles_root}.valid)
+set(stamp_invalid ${outfiles_root}.invalid)
+set(outfile_tmp ${outfiles_root}.tmp)
+set(BRLCAD_ENABLE_VERBOSE_PROGRESS @BRLCAD_ENABLE_VERBOSE_PROGRESS@)
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_file}")
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_valid}")
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${stamp_invalid}")
+execute_process(COMMAND "@CMAKE_COMMAND@" -E copy "@srcfile_tmp@" 
"${outfile_tmp}")
+execute_process(COMMAND "@ASTYLE_EXECUTABLE@" 
--options=@BRLCAD_SOURCE_DIR@/misc/astyle.opt "${outfile_tmp}" OUTPUT_QUIET 
ERROR_QUIET)
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${outfile_tmp}.orig")
+execute_process(COMMAND "@CMAKE_COMMAND@" -E compare_files  "@srcfile_tmp@"  
"${outfile_tmp}" RESULT_VARIABLE CMDRESULT OUTPUT_QUIET ERROR_QUIET)
+execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "${stamp_file}")
+if(CMDRESULT)
+  if(BRLCAD_ENABLE_VERBOSE_PROGRESS)
+    message(WARNING "Style failure: compare @srcfile_tmp@ with ${outfile_tmp} 
to see differences")
+  endif(BRLCAD_ENABLE_VERBOSE_PROGRESS)
+  file(WRITE "${stamp_invalid}" "@srcfile_tmp@")
+else(CMDRESULT)
+  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${outfile_tmp}")
+  execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "${stamp_valid}")
+endif(CMDRESULT)
+
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8

Added: brlcad/trunk/misc/CMake/style/test_list.cmake
===================================================================
--- brlcad/trunk/misc/CMake/style/test_list.cmake                               
(rev 0)
+++ brlcad/trunk/misc/CMake/style/test_list.cmake       2014-05-08 12:55:23 UTC 
(rev 60543)
@@ -0,0 +1,12 @@
+set(BRLCAD_STYLE_TESTS
+       astyle
+       )
+
+set(astyle_test_deps ${ASTYLE_EXECUTABLE_TARGET})
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8


Property changes on: brlcad/trunk/misc/CMake/style/test_list.cmake
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to