Changeset 5929 for code/trunk/cmake/SourceFileUtilities.cmake
- Timestamp:
- Oct 12, 2009, 8:20:07 PM (15 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/core5 (added) merged: 5768-5769,5772,5775-5780,5783-5785,5791-5792,5795-5807,5809-5814,5816-5832,5836-5839,5842-5853,5855-5899,5904-5922,5924-5928
- Property svn:mergeinfo changed
-
code/trunk/cmake/SourceFileUtilities.cmake
r2710 r5929 24 24 # [ADD/SET]_SOURCE_FILES - Writes source files to the cache by force and 25 25 # adds the current directory. 26 # GET_ALL_HEADER_FILES - Finds all header files recursively. 26 # Also compiles multiple source files into a single 27 # one by including them 28 # Use COMPILATION_[BEGIN|END] in 29 # [ADD|SET]_SOURCE_FILES and specify the name of 30 # the new source file after COMPILATION_BEGIN 31 # GET_ALL_HEADER_FILES - Finds all header files recursively. 27 32 # GENERATE_SOURCE_GROUPS - Set Visual Studio source groups. 28 33 # 29 34 35 FUNCTION(PREPARE_SOURCE_FILES) 36 SET(_fullpath_sources) 37 FOREACH(_file ${ARGN}) 38 IF(_file STREQUAL "COMPILATION_BEGIN") 39 SET(_compile TRUE) 40 # Next file is the name of the compilation 41 SET(_get_name TRUE) 42 ELSEIF(_get_name) 43 SET(_get_name FALSE) 44 SET(_compilation_name ${_file}) 45 ELSEIF(_file STREQUAL "COMPILATION_END") 46 IF(NOT _compilation_name) 47 MESSAGE(FATAL_ERROR "No name provided for source file compilation") 48 ENDIF() 49 IF(NOT DISABLE_COMPILATIONS) 50 SET(_include_string) 51 FOREACH(_file2 ${_compilation}) 52 SET(_include_string "${_include_string}#include \"${_file2}\"\n") 53 ENDFOREACH(_file2) 54 IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${_compilation_name}) 55 FILE(READ ${CMAKE_CURRENT_BINARY_DIR}/${_compilation_name} _include_string_file) 56 ENDIF() 57 IF(NOT _include_string STREQUAL "${_include_string_file}") 58 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_compilation_name} "${_include_string}") 59 ENDIF() 60 LIST(APPEND _fullpath_sources ${CMAKE_CURRENT_BINARY_DIR}/${_compilation_name}) 61 ENDIF() 62 SET(_compilation_name) 63 SET(_compilation) 64 SET(_compile FALSE) 65 ELSE() 66 # Prefix the full path 67 GET_SOURCE_FILE_PROPERTY(_filepath ${_file} LOCATION) 68 LIST(APPEND _fullpath_sources ${_filepath}) 69 IF(_compile AND NOT DISABLE_COMPILATIONS) 70 LIST(APPEND _compilation ${_filepath}) 71 LIST(APPEND _fullpath_sources "H") 72 ENDIF() 73 ENDIF() 74 ENDFOREACH(_file) 75 SET(_fullpath_sources ${_fullpath_sources} PARENT_SCOPE) 76 ENDFUNCTION(PREPARE_SOURCE_FILES) 77 78 30 79 # Adds source files with the full path to a list 31 80 FUNCTION(ADD_SOURCE_FILES _varname) 32 # Prefix the full path 33 SET(_fullpath_sources) 34 FOREACH(_file ${ARGN}) 35 GET_SOURCE_FILE_PROPERTY(_filepath ${_file} LOCATION) 36 LIST(APPEND _fullpath_sources ${_filepath}) 37 ENDFOREACH(_file) 81 PREPARE_SOURCE_FILES(${ARGN}) 38 82 # Write into the cache to avoid variable scoping in subdirs 39 83 SET(${_varname} ${${_varname}} ${_fullpath_sources} CACHE INTERNAL "Do not edit") … … 43 87 # Sets source files with the full path 44 88 FUNCTION(SET_SOURCE_FILES _varname) 45 # Prefix the full path 46 SET(_fullpath_sources) 47 FOREACH(_file ${ARGN}) 48 GET_SOURCE_FILE_PROPERTY(_filepath ${_file} LOCATION) 49 LIST(APPEND _fullpath_sources ${_filepath}) 50 ENDFOREACH(_file) 89 PREPARE_SOURCE_FILES(${ARGN}) 51 90 # Write into the cache to avoid variable scoping in subdirs 52 91 SET(${_varname} ${_fullpath_sources} CACHE INTERNAL "Do not edit") … … 66 105 GET_SOURCE_FILE_PROPERTY(_full_filepath ${_file} LOCATION) 67 106 FILE(RELATIVE_PATH _relative_path ${CMAKE_CURRENT_SOURCE_DIR} ${_full_filepath}) 68 GET_FILENAME_COMPONENT(_relative_path ${_relative_path} PATH) 69 STRING(REPLACE "/" "\\\\" _group_path "${_relative_path}") 70 SOURCE_GROUP("Source\\${_group_path}" FILES ${_file}) 107 IF(NOT _relative_path MATCHES "^\\.\\.") 108 GET_FILENAME_COMPONENT(_relative_path ${_relative_path} PATH) 109 STRING(REPLACE "/" "\\\\" _group_path "${_relative_path}") 110 SOURCE_GROUP("Source\\${_group_path}" FILES ${_file}) 111 ELSE() 112 # Has to be a compilation 113 SOURCE_GROUP("Compilations" FILES ${_file}) 114 ENDIF() 71 115 ENDFOREACH(_file) 72 116
Note: See TracChangeset
for help on using the changeset viewer.