diff options
117 files changed, 5518 insertions, 4999 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst index b186177..df7d8ba 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -540,7 +540,7 @@ are only traversed if ``FOLLOW_SYMLINKS`` is given or policy By default ``GLOB_RECURSE`` omits directories from result list - setting ``LIST_DIRECTORIES`` to true adds directories to result list. If ``FOLLOW_SYMLINKS`` is given or policy :policy:`CMP0009` is not set to -``OLD`` then ``LIST_DIRECTORIES`` treats symlinks as directories. +``NEW`` then ``LIST_DIRECTORIES`` treats symlinks as directories. Examples of recursive globbing include:: diff --git a/Help/release/dev/cmake-gui-env-platform-defaults.rst b/Help/release/dev/cmake-gui-env-platform-defaults.rst new file mode 100644 index 0000000..0960ef1 --- /dev/null +++ b/Help/release/dev/cmake-gui-env-platform-defaults.rst @@ -0,0 +1,8 @@ +cmake-gui-env-platform-defaults +------------------------------- + +* :manual:`cmake-gui(1)` now populates its generator selection + widget default value from the :envvar:`CMAKE_GENERATOR` environment + variable. Additionally, environment variables + :envvar:`CMAKE_GENERATOR_PLATFORM` and :envvar:`CMAKE_GENERATOR_TOOLSET` + are used to populate their respective widget defaults. diff --git a/Modules/CMakeSwiftCompiler.cmake.in b/Modules/CMakeSwiftCompiler.cmake.in index 7c8d1c1..47ada38 100644 --- a/Modules/CMakeSwiftCompiler.cmake.in +++ b/Modules/CMakeSwiftCompiler.cmake.in @@ -12,3 +12,5 @@ set(CMAKE_Swift_COMPILER_ENV_VAR "SWIFTC") set(CMAKE_Swift_COMPILER_ID_RUN 1) set(CMAKE_Swift_SOURCE_FILE_EXTENSIONS swift) + +set(CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES@") diff --git a/Modules/CMakeTestSwiftCompiler.cmake b/Modules/CMakeTestSwiftCompiler.cmake index 3e4ff95..d98dc9d 100644 --- a/Modules/CMakeTestSwiftCompiler.cmake +++ b/Modules/CMakeTestSwiftCompiler.cmake @@ -50,6 +50,11 @@ else() "the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n") endif() + # Unlike C and CXX we do not yet detect any information about the Swift ABI. + # However, one of the steps done for C and CXX as part of that detection is + # to initialize the implicit include directories. That is relevant here. + set(CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES "${_CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES_INIT}") + # Re-configure to save learned information. configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in ${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake @ONLY) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index db3716a..c69a2ee 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1239,7 +1239,7 @@ endif() endfunction() -function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules git_repository work_dir) +function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules_recurse git_submodules git_repository work_dir) if("${git_tag}" STREQUAL "") message(FATAL_ERROR "Tag for git checkout should not be empty.") endif() @@ -2339,6 +2339,29 @@ function(_ep_is_dir_empty dir empty_var) endif() endfunction() +function(_ep_get_git_submodules_recurse git_submodules_recurse) + # Checks for GIT_SUBMODULES_RECURSE property + # Default is ON, which sets git_submodules_recurse output variable to "--recursive" + # Otherwise, the output variable is set to an empty value "" + get_property(git_submodules_recurse_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE SET) + if(NOT git_submodules_recurse_set) + set(recurseFlag "--recursive") + else() + get_property(git_submodules_recurse_value TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE) + if(git_submodules_recurse_value) + set(recurseFlag "--recursive") + else() + set(recurseFlag "") + endif() + endif() + set(${git_submodules_recurse} "${recurseFlag}" PARENT_SCOPE) + + # The git submodule update '--recursive' flag requires git >= v1.6.5 + if(recurseFlag AND GIT_VERSION_STRING VERSION_LESS 1.6.5) + message(FATAL_ERROR "error: git version 1.6.5 or later required for --recursive flag with 'git submodule ...': GIT_VERSION_STRING='${GIT_VERSION_STRING}'") + endif() +endfunction() + function(_ep_add_download_command name) ExternalProject_Get_Property(${name} source_dir stamp_dir download_dir tmp_dir) @@ -2431,23 +2454,7 @@ function(_ep_add_download_command name) message(FATAL_ERROR "error: could not find git for clone of ${name}") endif() - get_property(git_submodules_recurse_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE SET) - if(NOT git_submodules_recurse_set) - set(git_submodules_recurse "--recursive") - else() - get_property(git_submodules_recurse_value TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE) - if(git_submodules_recurse_value) - set(git_submodules_recurse "--recursive") - else() - set(git_submodules_recurse "") - endif() - endif() - - # The git submodule update '--recursive' flag requires git >= v1.6.5 - # - if(git_submodules_recurse AND GIT_VERSION_STRING VERSION_LESS 1.6.5) - message(FATAL_ERROR "error: git version 1.6.5 or later required for 'git submodule update --recursive': GIT_VERSION_STRING='${GIT_VERSION_STRING}'") - endif() + _ep_get_git_submodules_recurse(git_submodules_recurse) get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG) if(NOT git_tag) @@ -2774,8 +2781,10 @@ function(_ep_add_update_command name) endif() endif() + _ep_get_git_submodules_recurse(git_submodules_recurse) + _ep_write_gitupdate_script(${tmp_dir}/${name}-gitupdate.cmake - ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules}" ${git_repository} ${work_dir} + ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules_recurse}" "${git_submodules}" ${git_repository} ${work_dir} ) set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitupdate.cmake) set(always 1) diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake index 62749ed..f251b41 100644 --- a/Modules/FindCUDAToolkit.cmake +++ b/Modules/FindCUDAToolkit.cmake @@ -105,6 +105,7 @@ of the following libraries that are part of the CUDAToolkit: - :ref:`cuRAND<cuda_toolkit_cuRAND>` - :ref:`cuSOLVER<cuda_toolkit_cuSOLVER>` - :ref:`cuSPARSE<cuda_toolkit_cuSPARSE>` +- :ref:`cuPTI<cuda_toolkit_cupti>` - :ref:`NPP<cuda_toolkit_NPP>` - :ref:`nvBLAS<cuda_toolkit_nvBLAS>` - :ref:`nvGRAPH<cuda_toolkit_nvGRAPH>` @@ -202,6 +203,18 @@ Targets Created: - ``CUDA::cusparse`` - ``CUDA::cusparse_static`` +.. _`cuda_toolkit_cupti`: + +cupti +""""" + +The `NVIDIA CUDA Profiling Tools Interface <https://developer.nvidia.com/CUPTI>`_. + +Targets Created: + +- ``CUDA::cupti`` +- ``CUDA::cupti_static`` + .. _`cuda_toolkit_NPP`: NPP @@ -333,8 +346,6 @@ Targets Created: - ``CUDA::nvml`` -.. _`cuda_toolkit_opencl`: - .. _`cuda_toolkit_nvToolsExt`: nvToolsExt @@ -347,6 +358,8 @@ Targets Created: - ``CUDA::nvToolsExt`` +.. _`cuda_toolkit_opencl`: + OpenCL """""" @@ -732,15 +745,17 @@ endif() if(CUDAToolkit_FOUND) function(_CUDAToolkit_find_and_add_import_lib lib_name) - cmake_parse_arguments(arg "" "" "ALT;DEPS" ${ARGN}) + cmake_parse_arguments(arg "" "" "ALT;DEPS;EXTRA_PATH_SUFFIXES" ${ARGN}) set(search_names ${lib_name} ${arg_ALT}) + message(STATUS "arg_EXTRA_PATH_SUFFIXES: ${arg_EXTRA_PATH_SUFFIXES}") find_library(CUDA_${lib_name}_LIBRARY NAMES ${search_names} HINTS ${CUDAToolkit_LIBRARY_DIR} ENV CUDA_PATH PATH_SUFFIXES nvidia/current lib64 lib64/stubs lib/x64 lib lib/stubs + ${arg_EXTRA_PATH_SUFFIXES} ) if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY) @@ -815,6 +830,13 @@ if(CUDAToolkit_FOUND) _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS nppc_static) endforeach() + _CUDAToolkit_find_and_add_import_lib(cupti + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + _CUDAToolkit_find_and_add_import_lib(cupti_static + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + _CUDAToolkit_find_and_add_import_lib(nvrtc DEPS cuda_driver) _CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml) diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index b488418..c1888a4 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -19,9 +19,12 @@ The module will optionally accept the ``COMPONENTS`` argument. If no ``COMPONENTS`` are specified, then the find module will default to finding only the ``HDF5`` C library. If one or more ``COMPONENTS`` are specified, the module will attempt to find the language bindings for the specified -components. The only valid components are ``C``, ``CXX``, ``Fortran``, ``HL``, -and ``Fortran_HL``. If the ``COMPONENTS`` argument is not given, the module will +components. The valid components are ``C``, ``CXX``, ``Fortran``, ``HL``. +``HL`` refers to the "high-level" HDF5 functions for C and Fortran. +If the ``COMPONENTS`` argument is not given, the module will attempt to find only the C bindings. +For example, to use Fortran HDF5 and HDF5-HL functions, do: +``find_package(HDF5 COMPONENTS Fortran HL)``. This module will read the variable ``HDF5_USE_STATIC_LIBRARIES`` to determine whether or not to prefer a @@ -29,11 +32,6 @@ static link to a dynamic link for ``HDF5`` and all of it's dependencies. To use this feature, make sure that the ``HDF5_USE_STATIC_LIBRARIES`` variable is set before the call to find_package. -To provide the module with a hint about where to find your ``HDF5`` -installation, you can set the environment variable ``HDF5_ROOT``. The -Find module will then look in this path when searching for ``HDF5`` -executables, paths, and libraries. - Both the serial and parallel ``HDF5`` wrappers are considered and the first directory to contain either one will be used. In the event that both appear in the same directory the serial version is preferentially selected. This @@ -115,10 +113,10 @@ also be defined. With all components enabled, the following variables will be d Hints ^^^^^ -The following variable can be set to guide the search for HDF5 libraries and includes: +The following variables can be set to guide the search for HDF5 libraries and includes: -``HDF5_ROOT`` - Specify the path to the HDF5 installation to use. +``HDF5_PREFER_PARALLEL`` + set ``true`` to prefer parallel HDF5 (by default, serial is preferred) ``HDF5_FIND_DEBUG`` Set ``true`` to get extra debugging output. @@ -343,35 +341,46 @@ macro( _HDF5_invoke_compiler language output return_value version is_parallel) elseif("${language}" STREQUAL "Fortran") set(test_file ${scratch_dir}/cmake_hdf5_test.f90) endif() + # Verify that the compiler wrapper can actually compile: sometimes the compiler + # wrapper exists, but not the compiler. E.g. Miniconda / Anaconda Python execute_process( - COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -show ${lib_type_args} ${test_file} - OUTPUT_VARIABLE ${output} - ERROR_VARIABLE ${output} + COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} ${test_file} RESULT_VARIABLE ${return_value} ) if(NOT ${${return_value}} EQUAL 0) - message(STATUS - "Unable to determine HDF5 ${language} flags from HDF5 wrapper.") - endif() - execute_process( - COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -showconfig - OUTPUT_VARIABLE config_output - ERROR_VARIABLE config_output - RESULT_VARIABLE config_return - ) - if(NOT ${return_value} EQUAL 0) - message( STATUS - "Unable to determine HDF5 ${language} version from HDF5 wrapper.") - endif() - string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version_match "${config_output}") - if(version_match) - string(REPLACE "HDF5 Version: " "" ${version} "${version_match}") - string(REPLACE "-patch" "." ${version} "${${version}}") - endif() - if(config_output MATCHES "Parallel HDF5: yes") - set(${is_parallel} TRUE) + message(STATUS + "HDF5 ${language} compiler wrapper is unable to compile a minimal HDF5 program.") else() - set(${is_parallel} FALSE) + execute_process( + COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -show ${lib_type_args} ${test_file} + OUTPUT_VARIABLE ${output} + ERROR_VARIABLE ${output} + RESULT_VARIABLE ${return_value} + ) + if(NOT ${${return_value}} EQUAL 0) + message(STATUS + "Unable to determine HDF5 ${language} flags from HDF5 wrapper.") + endif() + execute_process( + COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -showconfig + OUTPUT_VARIABLE config_output + ERROR_VARIABLE config_output + RESULT_VARIABLE config_return + ) + if(NOT ${return_value} EQUAL 0) + message( STATUS + "Unable to determine HDF5 ${language} version from HDF5 wrapper.") + endif() + string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version_match "${config_output}") + if(version_match) + string(REPLACE "HDF5 Version: " "" ${version} "${version_match}") + string(REPLACE "-patch" "." ${version} "${${version}}") + endif() + if(config_output MATCHES "Parallel HDF5: yes") + set(${is_parallel} TRUE) + else() + set(${is_parallel} FALSE) + endif() endif() endmacro() @@ -769,6 +778,17 @@ if( NOT HDF5_FOUND ) set(HDF5_Fortran_LIBRARY_NAMES hdf5_fortran ${HDF5_C_LIBRARY_NAMES}) set(HDF5_Fortran_HL_LIBRARY_NAMES hdf5hl_fortran ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_Fortran_LIBRARY_NAMES}) + # suffixes as seen on Linux, MSYS2, ... + set(_lib_suffixes hdf5) + if(NOT HDF5_PREFER_PARALLEL) + list(APPEND _lib_suffixes hdf5/serial) + endif() + if(HDF5_USE_STATIC_LIBRARIES) + set(_inc_suffixes include/static) + else() + set(_inc_suffixes include/shared) + endif() + foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS) # find the HDF5 include directories if("${__lang}" STREQUAL "Fortran") @@ -782,7 +802,7 @@ if( NOT HDF5_FOUND ) find_path(HDF5_${__lang}_INCLUDE_DIR ${HDF5_INCLUDE_FILENAME} HINTS ${HDF5_ROOT} PATHS $ENV{HOME}/.local/include - PATH_SUFFIXES include Include + PATH_SUFFIXES include Include ${_inc_suffixes} ${_lib_suffixes} ${_HDF5_SEARCH_OPTS} ) mark_as_advanced(HDF5_${__lang}_INCLUDE_DIR) @@ -811,14 +831,15 @@ if( NOT HDF5_FOUND ) endif() find_library(HDF5_${LIB}_LIBRARY_DEBUG NAMES ${THIS_LIBRARY_SEARCH_DEBUG} - HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib + HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes} ${_HDF5_SEARCH_OPTS} ) - find_library( HDF5_${LIB}_LIBRARY_RELEASE + find_library(HDF5_${LIB}_LIBRARY_RELEASE NAMES ${THIS_LIBRARY_SEARCH_RELEASE} - HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib + HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes} ${_HDF5_SEARCH_OPTS} ) + select_library_configurations( HDF5_${LIB} ) list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY}) endforeach() @@ -848,14 +869,15 @@ if( NOT HDF5_FOUND ) endif() find_library(HDF5_${LIB}_LIBRARY_DEBUG NAMES ${THIS_LIBRARY_SEARCH_DEBUG} - HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib + HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes} ${_HDF5_SEARCH_OPTS} ) - find_library( HDF5_${LIB}_LIBRARY_RELEASE + find_library(HDF5_${LIB}_LIBRARY_RELEASE NAMES ${THIS_LIBRARY_SEARCH_RELEASE} - HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib + HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes} ${_HDF5_SEARCH_OPTS} ) + select_library_configurations( HDF5_${LIB} ) list(APPEND HDF5_${__lang}_HL_LIBRARIES ${HDF5_${LIB}_LIBRARY}) endforeach() diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake index 3e42386..41e1d08 100644 --- a/Modules/FindMPI.cmake +++ b/Modules/FindMPI.cmake @@ -842,8 +842,8 @@ function (_MPI_interrogate_compiler LANG) if(NOT MPI_${LANG}_COMPILE_DEFINITIONS) set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_COMPILE_DEFINITIONS_WORK} CACHE STRING "MPI ${LANG} compilation definitions" FORCE) endif() - if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS) - set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_INCLUDE_DIRS_WORK} CACHE STRING "MPI ${LANG} additional include directories" FORCE) + if(NOT MPI_${LANG}_COMPILER_INCLUDE_DIRS) + set(MPI_${LANG}_COMPILER_INCLUDE_DIRS ${MPI_INCLUDE_DIRS_WORK} CACHE STRING "MPI ${LANG} compiler wrapper include directories" FORCE) endif() if(NOT MPI_${LANG}_LINK_FLAGS) set(MPI_${LANG}_LINK_FLAGS ${MPI_LINK_FLAGS_WORK} CACHE STRING "MPI ${LANG} linker flags" FORCE) @@ -1071,20 +1071,41 @@ macro(_MPI_assemble_libraries LANG) endif() endmacro() +macro(_MPI_assemble_include_dirs LANG) + set(MPI_${LANG}_INCLUDE_DIRS + ${MPI_${LANG}_COMPILER_INCLUDE_DIRS} + ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} + ) + if("${LANG}" MATCHES "(C|CXX)") + if(MPI_${LANG}_HEADER_DIR) + list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_HEADER_DIR}") + endif() + else() # Fortran + if(MPI_${LANG}_F77_HEADER_DIR) + list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_F77_HEADER_DIR}") + endif() + if(MPI_${LANG}_MODULE_DIR) + list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_MODULE_DIR}") + endif() + endif() + if(MPI_${LANG}_INCLUDE_DIRS) + list(REMOVE_DUPLICATES MPI_${LANG}_INCLUDE_DIRS) + endif() +endmacro() + macro(_MPI_split_include_dirs LANG) # Backwards compatibility: Search INCLUDE_PATH if given. if(MPI_${LANG}_INCLUDE_PATH) list(APPEND MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_${LANG}_INCLUDE_PATH}") endif() - # Preserve the include dirs before stripping out the components - set(MPI_${LANG}_INCLUDE_DIRS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}) - # We try to find the headers/modules among those paths (and system paths) # For C/C++, we just need to have a look for mpi.h. if("${LANG}" MATCHES "(C|CXX)") find_path(MPI_${LANG}_HEADER_DIR "mpi.h" - HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} + HINTS + ${MPI_${LANG}_COMPILER_INCLUDE_DIRS} + ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} ) mark_as_advanced(MPI_${LANG}_HEADER_DIR) if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS) @@ -1097,11 +1118,15 @@ macro(_MPI_split_include_dirs LANG) # a Fortran 90 module. elseif("${LANG}" STREQUAL "Fortran") find_path(MPI_${LANG}_F77_HEADER_DIR "mpif.h" - HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} + HINTS + ${MPI_${LANG}_COMPILER_INCLUDE_DIRS} + ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} ) find_path(MPI_${LANG}_MODULE_DIR NAMES "mpi.mod" "mpi_f08.mod" - HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} + HINTS + ${MPI_${LANG}_COMPILER_INCLUDE_DIRS} + ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} ) if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS) list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS @@ -1388,7 +1413,7 @@ foreach(LANG IN ITEMS C CXX Fortran) set(MPI_CXX_SKIP_MPICXX FALSE CACHE BOOL "If true, the MPI-2 C++ bindings are disabled using definitions.") mark_as_advanced(MPI_CXX_SKIP_MPICXX) endif() - if(NOT (MPI_${LANG}_LIB_NAMES AND (MPI_${LANG}_INCLUDE_PATH OR MPI_${LANG}_INCLUDE_DIRS OR MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS))) + if(NOT (MPI_${LANG}_LIB_NAMES AND (MPI_${LANG}_INCLUDE_PATH OR MPI_${LANG}_INCLUDE_DIRS OR MPI_${LANG}_COMPILER_INCLUDE_DIRS))) set(MPI_${LANG}_TRIED_IMPLICIT FALSE) set(MPI_${LANG}_WORKS_IMPLICIT FALSE) if(NOT MPI_${LANG}_COMPILER AND NOT MPI_ASSUME_NO_BUILTIN_MPI) @@ -1473,7 +1498,7 @@ foreach(LANG IN ITEMS C CXX Fortran) if("${LANG}" STREQUAL "CXX" AND MPI_C_WRAPPER_FOUND) set(MPI_${LANG}_COMPILE_OPTIONS ${MPI_C_COMPILE_OPTIONS} CACHE STRING "MPI ${LANG} compilation options" ) set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_C_COMPILE_DEFINITIONS} CACHE STRING "MPI ${LANG} compilation definitions" ) - set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_C_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} additional include directories") + set(MPI_${LANG}_COMPILER_INCLUDE_DIRS ${MPI_C_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} compiler wrapper include directories") set(MPI_${LANG}_LINK_FLAGS ${MPI_C_LINK_FLAGS} CACHE STRING "MPI ${LANG} linker flags" ) set(MPI_${LANG}_LIB_NAMES ${MPI_C_LIB_NAMES} CACHE STRING "MPI ${LANG} libraries to link against" ) else() @@ -1486,6 +1511,9 @@ foreach(LANG IN ITEMS C CXX Fortran) if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}") _MPI_split_include_dirs(${LANG}) + _MPI_assemble_include_dirs(${LANG}) + else() + set(MPI_${LANG}_INCLUDE_DIRS "") endif() _MPI_assemble_libraries(${LANG}) @@ -1500,13 +1528,21 @@ foreach(LANG IN ITEMS C CXX Fortran) # Next, we'll initialize the MPI variables that have not been previously set. set(MPI_${LANG}_COMPILE_OPTIONS "" CACHE STRING "MPI ${LANG} compilation flags" ) set(MPI_${LANG}_COMPILE_DEFINITIONS "" CACHE STRING "MPI ${LANG} compilation definitions" ) + set(MPI_${LANG}_COMPILER_INCLUDE_DIRS "" CACHE STRING "MPI ${LANG} compiler wrapper include directories") set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "MPI ${LANG} additional include directories") set(MPI_${LANG}_LINK_FLAGS "" CACHE STRING "MPI ${LANG} linker flags" ) if(NOT MPI_${LANG}_COMPILER STREQUAL CMAKE_${LANG}_COMPILER) set(MPI_${LANG}_LIB_NAMES "" CACHE STRING "MPI ${LANG} libraries to link against" ) endif() - mark_as_advanced(MPI_${LANG}_COMPILE_OPTIONS MPI_${LANG}_COMPILE_DEFINITIONS MPI_${LANG}_LINK_FLAGS - MPI_${LANG}_LIB_NAMES MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS MPI_${LANG}_COMPILER) + mark_as_advanced( + MPI_${LANG}_COMPILE_OPTIONS + MPI_${LANG}_COMPILE_DEFINITIONS + MPI_${LANG}_LINK_FLAGS + MPI_${LANG}_LIB_NAMES + MPI_${LANG}_COMPILER_INCLUDE_DIRS + MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS + MPI_${LANG}_COMPILER + ) # If we've found MPI, then we'll perform additional analysis: Determine the MPI version, MPI library version, supported # MPI APIs (i.e. MPI-2 C++ bindings). For Fortran we also need to find specific parameters if we're under MPI-3. diff --git a/Modules/FindOpenMP.cmake b/Modules/FindOpenMP.cmake index 26fed41..a4b1e1e 100644 --- a/Modules/FindOpenMP.cmake +++ b/Modules/FindOpenMP.cmake @@ -96,7 +96,7 @@ function(_OPENMP_FLAG_CANDIDATES LANG) unset(OpenMP_FLAG_CANDIDATES) set(OMP_FLAG_GNU "-fopenmp") - set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp") + set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp" "-Xclang -fopenmp") set(OMP_FLAG_AppleClang "-Xclang -fopenmp") set(OMP_FLAG_HP "+Oopenmp") if(WIN32) @@ -299,6 +299,25 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR) break() endif() endif() + elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "Clang" AND WIN32) + # Check for separate OpenMP library for Clang on Windows + find_library(OpenMP_libomp_LIBRARY + NAMES libomp libgomp libiomp5 + HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES} + ) + mark_as_advanced(OpenMP_libomp_LIBRARY) + if(OpenMP_libomp_LIBRARY) + try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC} + CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}" + LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY} + OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT + ) + if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}) + set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE) + set("${OPENMP_LIB_NAMES_VAR}" "libomp" PARENT_SCOPE) + break() + endif() + endif() else() file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "Detecting ${LANG} OpenMP failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n") @@ -425,13 +444,12 @@ foreach(LANG IN ITEMS C CXX) if(NOT DEFINED OpenMP_${LANG}_FLAGS OR "${OpenMP_${LANG}_FLAGS}" STREQUAL "NOTFOUND" OR NOT DEFINED OpenMP_${LANG}_LIB_NAMES OR "${OpenMP_${LANG}_LIB_NAMES}" STREQUAL "NOTFOUND") _OPENMP_GET_FLAGS("${LANG}" "${LANG}" OpenMP_${LANG}_FLAGS_WORK OpenMP_${LANG}_LIB_NAMES_WORK) + set(OpenMP_${LANG}_FLAGS "${OpenMP_${LANG}_FLAGS_WORK}" + CACHE STRING "${LANG} compiler flags for OpenMP parallelization" FORCE) + set(OpenMP_${LANG}_LIB_NAMES "${OpenMP_${LANG}_LIB_NAMES_WORK}" + CACHE STRING "${LANG} compiler libraries for OpenMP parallelization" FORCE) + mark_as_advanced(OpenMP_${LANG}_FLAGS OpenMP_${LANG}_LIB_NAMES) endif() - - set(OpenMP_${LANG}_FLAGS "${OpenMP_${LANG}_FLAGS_WORK}" - CACHE STRING "${LANG} compiler flags for OpenMP parallelization") - set(OpenMP_${LANG}_LIB_NAMES "${OpenMP_${LANG}_LIB_NAMES_WORK}" - CACHE STRING "${LANG} compiler libraries for OpenMP parallelization") - mark_as_advanced(OpenMP_${LANG}_FLAGS OpenMP_${LANG}_LIB_NAMES) endif() endforeach() diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index 7483d72..889d407 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -473,14 +473,27 @@ function (_PYTHON_VALIDATE_INTERPRETER) OUTPUT_VARIABLE version ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if (result OR (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version)) - # interpreter not usable or has wrong major version - if (result) - set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"") + if (result) + # interpreter is not usable + set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"") + set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND") + else() + if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version) + # interpreter has wrong version + set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"") + set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND") else() - set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"") + # check that version is OK + string(REGEX REPLACE "^([0-9]+)\." "\\1" major_version "${version}") + string(REGEX REPLACE "^([0-9]+)\." "\\1" expected_major_version "${expected_version}") + if (NOT major_version VERSION_EQUAL expected_major_version + OR NOT version VERSION_GREATER_EQUAL expected_version) + set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"") + set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND") + endif() endif() - set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND") + endif() + if (NOT _${_PYTHON_PREFIX}_EXECUTABLE) return() endif() else() @@ -912,6 +925,10 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) if (DEFINED ${_PYTHON_PREFIX}_EXECUTABLE AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_EXECUTABLE}") + if (NOT ${_PYTHON_PREFIX}_EXECUTABLE STREQUAL _${_PYTHON_PREFIX}_EXECUTABLE) + # invalidate cache properties + unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE) + endif() set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "") elseif (DEFINED _${_PYTHON_PREFIX}_EXECUTABLE) # compute interpreter signature and check validity of definition @@ -925,7 +942,10 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) endif() else() unset (_${_PYTHON_PREFIX}_EXECUTABLE CACHE) + endif() + if (NOT _${_PYTHON_PREFIX}_EXECUTABLE) unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE) + unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE) endif() endif() @@ -1218,10 +1238,6 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) OUTPUT_STRIP_TRAILING_WHITESPACE) if (NOT _${_PYTHON_PREFIX}_RESULT) set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE TRUE) - string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}") - list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR) - list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR) - list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH) else() # Interpreter is not usable set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE FALSE) @@ -1230,97 +1246,130 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) endif() endif() - if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE - AND ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR) - set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE) - # Use interpreter version and ABI for future searches to ensure consistency - set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}) - execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.abiflags)" - RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT - OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) - if (_${_PYTHON_PREFIX}_RESULT) - # assunme ABI is not supported - set (_${_PYTHON_PREFIX}_ABIFLAGS "") - endif() - endif() + if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE) + if (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES) + set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE) - if (${_PYTHON_PREFIX}_Interpreter_FOUND) - # compute and save interpreter signature - string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}") - set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "") - - if (NOT CMAKE_SIZEOF_VOID_P) - # determine interpreter architecture - execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.maxsize > 2**32)" - RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT - OUTPUT_VARIABLE ${_PYTHON_PREFIX}_IS64BIT - ERROR_VARIABLE ${_PYTHON_PREFIX}_IS64BIT) - if (NOT _${_PYTHON_PREFIX}_RESULT) - if (${_PYTHON_PREFIX}_IS64BIT) - set (_${_PYTHON_PREFIX}_ARCH 64) - set (_${_PYTHON_PREFIX}_ARCH2 64) - else() - set (_${_PYTHON_PREFIX}_ARCH 32) - set (_${_PYTHON_PREFIX}_ARCH2 32) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 0 ${_PYTHON_PREFIX}_INTERPRETER_ID) + + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 1 ${_PYTHON_PREFIX}_VERSION_MAJOR) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 2 ${_PYTHON_PREFIX}_VERSION_MINOR) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 3 ${_PYTHON_PREFIX}_VERSION_PATH) + + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 4 _${_PYTHON_PREFIX}_ARCH) + set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH}) + + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 5 _${_PYTHON_PREFIX}_ABIFLAGS) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 6 ${_PYTHON_PREFIX}_SOABI) + + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 7 ${_PYTHON_PREFIX}_STDLIB) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 8 ${_PYTHON_PREFIX}_STDARCH) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 9 ${_PYTHON_PREFIX}_SITELIB) + list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 10 ${_PYTHON_PREFIX}_SITEARCH) + else() + string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}") + list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR) + list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR) + list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH) + + if (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR) + set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE) + + # Use interpreter version and ABI for future searches to ensure consistency + set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}) + execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.abiflags)" + RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT + OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (_${_PYTHON_PREFIX}_RESULT) + # assunme ABI is not supported + set (_${_PYTHON_PREFIX}_ABIFLAGS "") endif() endif() - endif() - # retrieve interpreter identity - execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -V - RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT - OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID - ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID) - if (NOT _${_PYTHON_PREFIX}_RESULT) - if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda") - set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda") - elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought") - set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy") - else() - string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}") - if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python") - # try to get a more precise ID - execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.copyright)" + if (${_PYTHON_PREFIX}_Interpreter_FOUND) + # compute and save interpreter signature + string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}") + set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "") + + if (NOT CMAKE_SIZEOF_VOID_P) + # determine interpreter architecture + execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.maxsize > 2**32)" RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT - OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT - ERROR_QUIET) - if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState") - set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython") + OUTPUT_VARIABLE ${_PYTHON_PREFIX}_IS64BIT + ERROR_VARIABLE ${_PYTHON_PREFIX}_IS64BIT) + if (NOT _${_PYTHON_PREFIX}_RESULT) + if (${_PYTHON_PREFIX}_IS64BIT) + set (_${_PYTHON_PREFIX}_ARCH 64) + set (_${_PYTHON_PREFIX}_ARCH2 64) + else() + set (_${_PYTHON_PREFIX}_ARCH 32) + set (_${_PYTHON_PREFIX}_ARCH2 32) + endif() endif() endif() - endif() - else() - set (${_PYTHON_PREFIX}_INTERPRETER_ID Python) - endif() - # retrieve various package installation directories - execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))" - RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT - OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS - ERROR_QUIET) - if (NOT _${_PYTHON_PREFIX}_RESULT) - list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB) - list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH) - list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB) - list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH) - else() - unset (${_PYTHON_PREFIX}_STDLIB) - unset (${_PYTHON_PREFIX}_STDARCH) - unset (${_PYTHON_PREFIX}_SITELIB) - unset (${_PYTHON_PREFIX}_SITEARCH) - endif() + # retrieve interpreter identity + execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -V + RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT + OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID + ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID) + if (NOT _${_PYTHON_PREFIX}_RESULT) + if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda") + set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda") + elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought") + set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy") + else() + string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}") + if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python") + # try to get a more precise ID + execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.copyright)" + RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT + OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT + ERROR_QUIET) + if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState") + set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython") + endif() + endif() + endif() + else() + set (${_PYTHON_PREFIX}_INTERPRETER_ID Python) + endif() - if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3) - _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI) + # retrieve various package installation directories + execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))" + RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT + OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS + ERROR_QUIET) + if (NOT _${_PYTHON_PREFIX}_RESULT) + list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB) + list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH) + list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB) + list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH) + else() + unset (${_PYTHON_PREFIX}_STDLIB) + unset (${_PYTHON_PREFIX}_STDARCH) + unset (${_PYTHON_PREFIX}_SITELIB) + unset (${_PYTHON_PREFIX}_SITEARCH) + endif() + + if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3) + _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI) + endif() + + # store properties in the cache to speed-up future searches + set (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES + "${${_PYTHON_PREFIX}_INTERPRETER_ID};${${_PYTHON_PREFIX}_VERSION_MAJOR};${${_PYTHON_PREFIX}_VERSION_MINOR};${${_PYTHON_PREFIX}_VERSION_PATCH};${_${_PYTHON_PREFIX}_ARCH};${_${_PYTHON_PREFIX}_ABIFLAGS};${${_PYTHON_PREFIX}_SOABI};${${_PYTHON_PREFIX}_STDLIB};${${_PYTHON_PREFIX}_STDARCH};${${_PYTHON_PREFIX}_SITELIB};${${_PYTHON_PREFIX}_SITEARCH}" CACHE INTERNAL "${_PYTHON_PREFIX} Properties") + else() + unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE) + unset (${_PYTHON_PREFIX}_INTERPRETER_ID) + endif() endif() - else() - unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE) - unset (${_PYTHON_PREFIX}_INTERPRETER_ID) endif() mark_as_advanced (_${_PYTHON_PREFIX}_EXECUTABLE + _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE) endif() diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index e5a57b5..0a4d4e1 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -210,7 +210,7 @@ unset(_apps_paths) include(Platform/UnixPaths) if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include) list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr) - foreach(lang C CXX OBJC OBJCXX) + foreach(lang C CXX OBJC OBJCXX Swift) list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include) endforeach() endif() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1b0765b..cf4cc50 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) -set(CMake_VERSION_MINOR 16) -set(CMake_VERSION_PATCH 20200205) +set(CMake_VERSION_MINOR 17) +set(CMake_VERSION_PATCH 20200212) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Source/QtDialog/FirstConfigure.cxx b/Source/QtDialog/FirstConfigure.cxx index ca28b19..3c24b9b 100644 --- a/Source/QtDialog/FirstConfigure.cxx +++ b/Source/QtDialog/FirstConfigure.cxx @@ -10,8 +10,12 @@ #include "Compilers.h" -StartCompilerSetup::StartCompilerSetup(QWidget* p) +StartCompilerSetup::StartCompilerSetup(QString defaultGeneratorPlatform, + QString defaultGeneratorToolset, + QWidget* p) : QWizardPage(p) + , DefaultGeneratorPlatform(std::move(defaultGeneratorPlatform)) + , DefaultGeneratorToolset(std::move(defaultGeneratorToolset)) { QVBoxLayout* l = new QVBoxLayout(this); l->addWidget(new QLabel(tr("Specify the generator for this project"))); @@ -68,6 +72,10 @@ QFrame* StartCompilerSetup::CreateToolsetWidgets() Toolset = new QLineEdit(frame); l->addWidget(Toolset); + // Default to CMAKE_GENERATOR_TOOLSET env var if set + if (!DefaultGeneratorToolset.isEmpty()) { + this->Toolset->setText(DefaultGeneratorToolset); + } return frame; } @@ -199,6 +207,14 @@ void StartCompilerSetup::onGeneratorChanged(QString const& name) this->PlatformOptions->addItems(platform_list); PlatformFrame->show(); + + // Default to generator platform from environment + if (!DefaultGeneratorPlatform.isEmpty()) { + int platform_index = platforms.indexOf(DefaultGeneratorPlatform); + if (platform_index != -1) { + this->PlatformOptions->setCurrentIndex(platform_index); + } + } } else { PlatformFrame->hide(); } @@ -421,8 +437,26 @@ void ToolchainCompilerSetup::setToolchainFile(const QString& t) FirstConfigure::FirstConfigure() { + const char* env_generator = std::getenv("CMAKE_GENERATOR"); + const char* env_generator_platform = nullptr; + const char* env_generator_toolset = nullptr; + if (env_generator && std::strlen(env_generator)) { + mDefaultGenerator = env_generator; + env_generator_platform = std::getenv("CMAKE_GENERATOR_PLATFORM"); + env_generator_toolset = std::getenv("CMAKE_GENERATOR_TOOLSET"); + } + + if (!env_generator_platform) { + env_generator_platform = ""; + } + + if (!env_generator_toolset) { + env_generator_toolset = ""; + } + // this->setOption(QWizard::HaveFinishButtonOnEarlyPages, true); - this->mStartCompilerSetupPage = new StartCompilerSetup(this); + this->mStartCompilerSetupPage = new StartCompilerSetup( + env_generator_platform, env_generator_toolset, this); this->setPage(Start, this->mStartCompilerSetupPage); QObject::connect(this->mStartCompilerSetupPage, SIGNAL(selectionChanged()), this, SLOT(restart())); @@ -504,6 +538,17 @@ void FirstConfigure::loadFromSettings() this->mCrossCompilerSetupPage->setIncludeMode( settings.value("IncludeMode", 0).toInt()); settings.endGroup(); + + // environment variables take precedence over application settings because... + // - they're harder to set + // - settings always exist after the program is run once, so the environment + // variables would never be used otherwise + // - platform and toolset are populated only from environment variables, so + // this prevents them from being taken from environment, while the + // generator is taken from application settings + if (!mDefaultGenerator.isEmpty()) { + this->mStartCompilerSetupPage->setCurrentGenerator(mDefaultGenerator); + } } void FirstConfigure::saveToSettings() diff --git a/Source/QtDialog/FirstConfigure.h b/Source/QtDialog/FirstConfigure.h index d1db5bf..c26f489 100644 --- a/Source/QtDialog/FirstConfigure.h +++ b/Source/QtDialog/FirstConfigure.h @@ -29,7 +29,8 @@ class StartCompilerSetup : public QWizardPage { Q_OBJECT public: - StartCompilerSetup(QWidget* p); + StartCompilerSetup(QString defaultGeneratorPlatform, + QString defaultGeneratorToolset, QWidget* p); ~StartCompilerSetup(); void setGenerators(std::vector<cmake::GeneratorInfo> const& gens); void setCurrentGenerator(const QString& gen); @@ -64,6 +65,7 @@ protected: QStringList GeneratorsSupportingPlatform; QMultiMap<QString, QString> GeneratorSupportedPlatforms; QMap<QString, QString> GeneratorDefaultPlatform; + QString DefaultGeneratorPlatform, DefaultGeneratorToolset; private: QFrame* CreateToolsetWidgets(); @@ -197,6 +199,7 @@ protected: NativeCompilerSetup* mNativeCompilerSetupPage; CrossCompilerSetup* mCrossCompilerSetupPage; ToolchainCompilerSetup* mToolchainCompilerSetupPage; + QString mDefaultGenerator; }; #endif // FirstConfigure_h diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx index 5deba8b..231a2d6 100644 --- a/Source/cmAddCustomCommandCommand.cxx +++ b/Source/cmAddCustomCommandCommand.cxx @@ -174,7 +174,7 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args, doing = doing_comment; } else if (copy == keyDEPFILE) { doing = doing_depfile; - if (mf.GetGlobalGenerator()->GetName() != "Ninja") { + if (!mf.GetGlobalGenerator()->SupportsCustomCommandDepfile()) { status.SetError("Option DEPFILE not supported by " + mf.GetGlobalGenerator()->GetName()); return false; diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index 7a9e2b7..ccef9c8 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -301,11 +301,11 @@ int cmComputeLinkDepends::AddLinkEntry(cmLinkItem const& item) // Initialize the item entry. int index = lei->second; LinkEntry& entry = this->EntryList[index]; - entry.Item = item.AsStr(); + entry.Item = BT<std::string>(item.AsStr(), item.Backtrace); entry.Target = item.Target; - entry.IsFlag = - (!entry.Target && entry.Item[0] == '-' && entry.Item[1] != 'l' && - entry.Item.substr(0, 10) != "-framework"); + entry.IsFlag = (!entry.Target && entry.Item.Value[0] == '-' && + entry.Item.Value[1] != 'l' && + entry.Item.Value.substr(0, 10) != "-framework"); // If the item has dependencies queue it to follow them. if (entry.Target) { @@ -314,7 +314,7 @@ int cmComputeLinkDepends::AddLinkEntry(cmLinkItem const& item) this->BFSQueue.push(qe); } else { // Look for an old-style <item>_LIB_DEPENDS variable. - std::string var = cmStrCat(entry.Item, "_LIB_DEPENDS"); + std::string var = cmStrCat(entry.Item.Value, "_LIB_DEPENDS"); if (const char* val = this->Makefile->GetDefinition(var)) { // The item dependencies are known. Follow them. BFSEntry qe = { index, val }; @@ -396,7 +396,7 @@ void cmComputeLinkDepends::HandleSharedDependency(SharedDepEntry const& dep) // Initialize the item entry. LinkEntry& entry = this->EntryList[lei->second]; - entry.Item = dep.Item.AsStr(); + entry.Item = BT<std::string>(dep.Item.AsStr(), dep.Item.Backtrace); entry.Target = dep.Item.Target; // This item was added specifically because it is a dependent @@ -671,7 +671,8 @@ void cmComputeLinkDepends::DisplayComponents() fprintf(stderr, "Component (%u):\n", c); NodeList const& nl = components[c]; for (int i : nl) { - fprintf(stderr, " item %d [%s]\n", i, this->EntryList[i].Item.c_str()); + fprintf(stderr, " item %d [%s]\n", i, + this->EntryList[i].Item.Value.c_str()); } EdgeList const& ol = this->CCG->GetComponentGraphEdges(c); for (cmGraphEdge const& oi : ol) { @@ -819,7 +820,7 @@ void cmComputeLinkDepends::DisplayFinalEntries() if (lei.Target) { fprintf(stderr, " target [%s]\n", lei.Target->GetName().c_str()); } else { - fprintf(stderr, " item [%s]\n", lei.Item.c_str()); + fprintf(stderr, " item [%s]\n", lei.Item.Value.c_str()); } } fprintf(stderr, "\n"); diff --git a/Source/cmComputeLinkDepends.h b/Source/cmComputeLinkDepends.h index 47c821b..e806dff 100644 --- a/Source/cmComputeLinkDepends.h +++ b/Source/cmComputeLinkDepends.h @@ -14,6 +14,7 @@ #include "cmGraphAdjacencyList.h" #include "cmLinkItem.h" +#include "cmListFileCache.h" #include "cmTargetLinkLibraryType.h" class cmComputeComponentGraph; @@ -38,7 +39,7 @@ public: // Basic information about each link item. struct LinkEntry { - std::string Item; + BT<std::string> Item; cmGeneratorTarget const* Target = nullptr; bool IsSharedDep = false; bool IsFlag = false; diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 7be6d2c..11570d6 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -642,7 +642,7 @@ void cmComputeLinkInformation::AddImplicitLinkInfo(std::string const& lang) } } -void cmComputeLinkInformation::AddItem(std::string const& item, +void cmComputeLinkInformation::AddItem(BT<std::string> const& item, cmGeneratorTarget const* tgt) { // Compute the proper name to use to link this library. @@ -668,7 +668,8 @@ void cmComputeLinkInformation::AddItem(std::string const& item, std::string exe = tgt->GetFullPath(config, artifact, true); linkItem += exe; - this->Items.emplace_back(linkItem, true, tgt); + this->Items.emplace_back(BT<std::string>(linkItem, item.Backtrace), true, + tgt); this->Depends.push_back(std::move(exe)); } else if (tgt->GetType() == cmStateEnums::INTERFACE_LIBRARY) { // Add the interface library as an item so it can be considered as part @@ -679,7 +680,7 @@ void cmComputeLinkInformation::AddItem(std::string const& item, // Also add the item the interface specifies to be used in its place. std::string const& libName = tgt->GetImportedLibName(config); if (!libName.empty()) { - this->AddItem(libName, nullptr); + this->AddItem(BT<std::string>(libName, item.Backtrace), nullptr); } } else if (tgt->GetType() == cmStateEnums::OBJECT_LIBRARY) { // Ignore object library! @@ -691,8 +692,9 @@ void cmComputeLinkInformation::AddItem(std::string const& item, : cmStateEnums::RuntimeBinaryArtifact; // Pass the full path to the target file. - std::string lib = tgt->GetFullPath(config, artifact, true); - if (tgt->Target->IsAIX() && cmHasLiteralSuffix(lib, "-NOTFOUND") && + BT<std::string> lib = BT<std::string>( + tgt->GetFullPath(config, artifact, true), item.Backtrace); + if (tgt->Target->IsAIX() && cmHasLiteralSuffix(lib.Value, "-NOTFOUND") && artifact == cmStateEnums::ImportLibraryArtifact) { // This is an imported executable on AIX that has ENABLE_EXPORTS // but not IMPORTED_IMPLIB. CMake used to produce and accept such @@ -703,23 +705,23 @@ void cmComputeLinkInformation::AddItem(std::string const& item, } if (!this->LinkDependsNoShared || tgt->GetType() != cmStateEnums::SHARED_LIBRARY) { - this->Depends.push_back(lib); + this->Depends.push_back(lib.Value); } this->AddTargetItem(lib, tgt); - this->AddLibraryRuntimeInfo(lib, tgt); + this->AddLibraryRuntimeInfo(lib.Value, tgt); } } else { // This is not a CMake target. Use the name given. - if (cmSystemTools::FileIsFullPath(item)) { - if (cmSystemTools::FileIsDirectory(item)) { + if (cmSystemTools::FileIsFullPath(item.Value)) { + if (cmSystemTools::FileIsDirectory(item.Value)) { // This is a directory. - this->AddDirectoryItem(item); + this->AddDirectoryItem(item.Value); } else { // Use the full path given to the library file. - this->Depends.push_back(item); + this->Depends.push_back(item.Value); this->AddFullItem(item); - this->AddLibraryRuntimeInfo(item); + this->AddLibraryRuntimeInfo(item.Value); } } else { // This is a library or option specified by the user. @@ -728,7 +730,7 @@ void cmComputeLinkInformation::AddItem(std::string const& item, } } -void cmComputeLinkInformation::AddSharedDepItem(std::string const& item, +void cmComputeLinkInformation::AddSharedDepItem(BT<std::string> const& item, const cmGeneratorTarget* tgt) { // If dropping shared library dependencies, ignore them. @@ -747,12 +749,12 @@ void cmComputeLinkInformation::AddSharedDepItem(std::string const& item, } else { // Skip items that are not full paths. We will not be able to // reliably specify them. - if (!cmSystemTools::FileIsFullPath(item)) { + if (!cmSystemTools::FileIsFullPath(item.Value)) { return; } // Get the name of the library from the file name. - std::string file = cmSystemTools::GetFilenameName(item); + std::string file = cmSystemTools::GetFilenameName(item.Value); if (!this->ExtractSharedLibraryName.find(file)) { // This is not the name of a shared library. return; @@ -776,7 +778,7 @@ void cmComputeLinkInformation::AddSharedDepItem(std::string const& item, lib = tgt->GetFullPath(this->Config, artifact); this->AddLibraryRuntimeInfo(lib, tgt); } else { - lib = item; + lib = item.Value; this->AddLibraryRuntimeInfo(lib); } @@ -1033,7 +1035,7 @@ void cmComputeLinkInformation::SetCurrentLinkType(LinkType lt) } } -void cmComputeLinkInformation::AddTargetItem(std::string const& item, +void cmComputeLinkInformation::AddTargetItem(BT<std::string> const& item, cmGeneratorTarget const* target) { // This is called to handle a link item that is a full path to a target. @@ -1054,7 +1056,7 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item, // Handle case of an imported shared library with no soname. if (this->NoSONameUsesPath && target->IsImportedSharedLibWithoutSOName(this->Config)) { - this->AddSharedLibNoSOName(item); + this->AddSharedLibNoSOName(item.Value); return; } @@ -1062,23 +1064,23 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item, // the linker search path. if (this->OldLinkDirMode && !target->IsFrameworkOnApple() && !cmContains(this->OldLinkDirMask, - cmSystemTools::GetFilenamePath(item))) { - this->OldLinkDirItems.push_back(item); + cmSystemTools::GetFilenamePath(item.Value))) { + this->OldLinkDirItems.push_back(item.Value); } // Now add the full path to the library. this->Items.emplace_back(item, true, target); } -void cmComputeLinkInformation::AddFullItem(std::string const& item) +void cmComputeLinkInformation::AddFullItem(BT<std::string> const& item) { // Check for the implicit link directory special case. - if (this->CheckImplicitDirItem(item)) { + if (this->CheckImplicitDirItem(item.Value)) { return; } // Check for case of shared library with no builtin soname. - if (this->NoSONameUsesPath && this->CheckSharedLibNoSOName(item)) { + if (this->NoSONameUsesPath && this->CheckSharedLibNoSOName(item.Value)) { return; } @@ -1088,9 +1090,9 @@ void cmComputeLinkInformation::AddFullItem(std::string const& item) if (this->Target->GetPolicyStatusCMP0008() != cmPolicies::NEW && (generator.find("Visual Studio") != std::string::npos || generator.find("Xcode") != std::string::npos)) { - std::string file = cmSystemTools::GetFilenameName(item); + std::string file = cmSystemTools::GetFilenameName(item.Value); if (!this->ExtractAnyLibraryName.find(file)) { - this->HandleBadFullItem(item, file); + this->HandleBadFullItem(item.Value, file); return; } } @@ -1102,10 +1104,10 @@ void cmComputeLinkInformation::AddFullItem(std::string const& item) // static libraries. If a previous user item changed the link type // to static we need to make sure it is back to shared. if (this->LinkTypeEnabled) { - std::string name = cmSystemTools::GetFilenameName(item); + std::string name = cmSystemTools::GetFilenameName(item.Value); if (this->ExtractSharedLibraryName.find(name)) { this->SetCurrentLinkType(LinkShared); - } else if (!this->ExtractStaticLibraryName.find(item)) { + } else if (!this->ExtractStaticLibraryName.find(item.Value)) { // We cannot determine the type. Assume it is the target's // default type. this->SetCurrentLinkType(this->StartLinkType); @@ -1116,8 +1118,8 @@ void cmComputeLinkInformation::AddFullItem(std::string const& item) // the linker search path. if (this->OldLinkDirMode && !cmContains(this->OldLinkDirMask, - cmSystemTools::GetFilenamePath(item))) { - this->OldLinkDirItems.push_back(item); + cmSystemTools::GetFilenamePath(item.Value))) { + this->OldLinkDirItems.push_back(item.Value); } // Now add the full path to the library. @@ -1181,7 +1183,7 @@ bool cmComputeLinkInformation::CheckImplicitDirItem(std::string const& item) return true; } -void cmComputeLinkInformation::AddUserItem(std::string const& item, +void cmComputeLinkInformation::AddUserItem(BT<std::string> const& item, bool pathNotKnown) { // This is called to handle a link item that does not match a CMake @@ -1193,14 +1195,14 @@ void cmComputeLinkInformation::AddUserItem(std::string const& item, // libfoo.a ==> -Wl,-Bstatic -lfoo // Pass flags through untouched. - if (item[0] == '-' || item[0] == '$' || item[0] == '`') { + if (item.Value[0] == '-' || item.Value[0] == '$' || item.Value[0] == '`') { // if this is a -l option then we might need to warn about // CMP0003 so put it in OldUserFlagItems, if it is not a -l // or -Wl,-l (-framework -pthread), then allow it without a // CMP0003 as -L will not affect those other linker flags - if (item.find("-l") == 0 || item.find("-Wl,-l") == 0) { + if (item.Value.find("-l") == 0 || item.Value.find("-Wl,-l") == 0) { // This is a linker option provided by the user. - this->OldUserFlagItems.push_back(item); + this->OldUserFlagItems.push_back(item.Value); } // Restore the target link type since this item does not specify @@ -1223,7 +1225,7 @@ void cmComputeLinkInformation::AddUserItem(std::string const& item, // libraries. On AIX a library with the name libfoo.a can be // shared! std::string lib; - if (this->ExtractSharedLibraryName.find(item)) { + if (this->ExtractSharedLibraryName.find(item.Value)) { // This matches a shared library file name. #ifdef CM_COMPUTE_LINK_INFO_DEBUG fprintf(stderr, "shared regex matched [%s] [%s] [%s]\n", @@ -1236,7 +1238,7 @@ void cmComputeLinkInformation::AddUserItem(std::string const& item, // Use just the library name so the linker will search. lib = this->ExtractSharedLibraryName.match(2); - } else if (this->ExtractStaticLibraryName.find(item)) { + } else if (this->ExtractStaticLibraryName.find(item.Value)) { // This matches a static library file name. #ifdef CM_COMPUTE_LINK_INFO_DEBUG fprintf(stderr, "static regex matched [%s] [%s] [%s]\n", @@ -1249,7 +1251,7 @@ void cmComputeLinkInformation::AddUserItem(std::string const& item, // Use just the library name so the linker will search. lib = this->ExtractStaticLibraryName.match(2); - } else if (this->ExtractAnyLibraryName.find(item)) { + } else if (this->ExtractAnyLibraryName.find(item.Value)) { // This matches a library file name. #ifdef CM_COMPUTE_LINK_INFO_DEBUG fprintf(stderr, "any regex matched [%s] [%s] [%s]\n", @@ -1266,19 +1268,19 @@ void cmComputeLinkInformation::AddUserItem(std::string const& item, } else { // This is a name specified by the user. if (pathNotKnown) { - this->OldUserFlagItems.push_back(item); + this->OldUserFlagItems.push_back(item.Value); } // We must ask the linker to search for a library with this name. // Restore the target link type since this item does not specify // one. this->SetCurrentLinkType(this->StartLinkType); - lib = item; + lib = item.Value; } // Create an option to ask the linker to search for the library. std::string out = cmStrCat(this->LibLinkFlag, lib, this->LibLinkSuffix); - this->Items.emplace_back(out, false); + this->Items.emplace_back(BT<std::string>(out, item.Backtrace), false); // Here we could try to find the library the linker will find and // add a runtime information entry for it. It would probably not be @@ -1308,7 +1310,7 @@ void cmComputeLinkInformation::AddFrameworkItem(std::string const& item) this->AddLibraryRuntimeInfo(full_fw); // Add the item using the -framework option. - this->Items.emplace_back("-framework", false); + this->Items.emplace_back(std::string("-framework"), false); cmOutputConverter converter(this->Makefile->GetStateSnapshot()); fw = converter.EscapeForShell(fw); this->Items.emplace_back(fw, false); diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h index 3bc9c16..e50d369 100644 --- a/Source/cmComputeLinkInformation.h +++ b/Source/cmComputeLinkInformation.h @@ -14,13 +14,13 @@ #include "cmsys/RegularExpression.hxx" +#include "cmListFileCache.h" + class cmGeneratorTarget; class cmGlobalGenerator; class cmMakefile; class cmOrderDirectories; class cmake; -template <typename T> -class BT; /** \class cmComputeLinkInformation * \brief Compute link information for a target in one configuration. @@ -39,13 +39,13 @@ public: struct Item { Item() = default; - Item(std::string v, bool p, cmGeneratorTarget const* target = nullptr) + Item(BT<std::string> v, bool p, cmGeneratorTarget const* target = nullptr) : Value(std::move(v)) , IsPath(p) , Target(target) { } - std::string Value; + BT<std::string> Value; bool IsPath = true; cmGeneratorTarget const* Target = nullptr; }; @@ -78,8 +78,9 @@ public: const cmGeneratorTarget* GetTarget() { return this->Target; } private: - void AddItem(std::string const& item, const cmGeneratorTarget* tgt); - void AddSharedDepItem(std::string const& item, cmGeneratorTarget const* tgt); + void AddItem(BT<std::string> const& item, const cmGeneratorTarget* tgt); + void AddSharedDepItem(BT<std::string> const& item, + cmGeneratorTarget const* tgt); // Output information. ItemVector Items; @@ -150,10 +151,11 @@ private: std::string NoCaseExpression(const char* str); // Handling of link items. - void AddTargetItem(std::string const& item, const cmGeneratorTarget* target); - void AddFullItem(std::string const& item); + void AddTargetItem(BT<std::string> const& item, + const cmGeneratorTarget* target); + void AddFullItem(BT<std::string> const& item); bool CheckImplicitDirItem(std::string const& item); - void AddUserItem(std::string const& item, bool pathNotKnown); + void AddUserItem(BT<std::string> const& item, bool pathNotKnown); void AddDirectoryItem(std::string const& item); void AddFrameworkItem(std::string const& item); void DropDirectoryItem(std::string const& item); diff --git a/Source/cmGlobVerificationManager.cxx b/Source/cmGlobVerificationManager.cxx index 4817773..9ac5cd5 100644 --- a/Source/cmGlobVerificationManager.cxx +++ b/Source/cmGlobVerificationManager.cxx @@ -38,6 +38,8 @@ bool cmGlobVerificationManager::SaveVerificationScript(const std::string& path) << cmVersion::GetMajorVersion() << "." << cmVersion::GetMinorVersion() << "\n"; + verifyScriptFile << "cmake_policy(SET CMP0009 NEW)\n"; + for (auto const& i : this->Cache) { CacheEntryKey k = std::get<0>(i); CacheEntryValue v = std::get<1>(i); diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index e6ab1dd..0e7e03d 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -448,6 +448,8 @@ public: MacFolder. */ virtual bool ShouldStripResourcePath(cmMakefile*) const; + virtual bool SupportsCustomCommandDepfile() const { return false; } + std::string GetSharedLibFlagsForLanguage(std::string const& lang) const; /** Generate an <output>.rule file path for a given command output. */ diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index ff1e5d6..072c6e1 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -46,7 +46,8 @@ #include "cmake.h" const char* cmGlobalNinjaGenerator::NINJA_BUILD_FILE = "build.ninja"; -const char* cmGlobalNinjaGenerator::NINJA_RULES_FILE = "rules.ninja"; +const char* cmGlobalNinjaGenerator::NINJA_RULES_FILE = + "CMakeFiles/rules.ninja"; const char* cmGlobalNinjaGenerator::INDENT = " "; #ifdef _WIN32 std::string const cmGlobalNinjaGenerator::SHELL_NOOP = "cd ."; @@ -735,7 +736,7 @@ void cmGlobalNinjaGenerator::EnableLanguage( if (this->IsMultiConfig()) { if (!mf->GetDefinition("CMAKE_CONFIGURATION_TYPES")) { mf->AddCacheDefinition( - "CMAKE_CONFIGURATION_TYPES", "Debug;Release;MinSizeRel;RelWithDebInfo", + "CMAKE_CONFIGURATION_TYPES", "Debug;Release;RelWithDebInfo", "Semicolon separated list of supported configuration types, only " "supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything " "else will be ignored", @@ -890,7 +891,8 @@ bool cmGlobalNinjaGenerator::OpenFileStream( } cm::optional<std::set<std::string>> cmGlobalNinjaGenerator::ListSubsetWithAll( - const std::set<std::string>& defaults, const std::vector<std::string>& items) + const std::set<std::string>& all, const std::set<std::string>& defaults, + const std::vector<std::string>& items) { std::set<std::string> result; @@ -901,7 +903,7 @@ cm::optional<std::set<std::string>> cmGlobalNinjaGenerator::ListSubsetWithAll( } else { return cm::nullopt; } - } else if (defaults.count(item)) { + } else if (all.count(item)) { result.insert(item); } else { return cm::nullopt; @@ -2640,7 +2642,7 @@ bool cmGlobalNinjaMultiGenerator::ReadCacheEntriesForBuild( std::vector<std::string> crossConfigsVec; cmExpandList(state.GetSafeCacheEntryValue("CMAKE_NMC_CROSS_CONFIGS"), crossConfigsVec); - auto crossConfigs = ListSubsetWithAll(configs, crossConfigsVec); + auto crossConfigs = ListSubsetWithAll(configs, configs, crossConfigsVec); if (!crossConfigs) { std::ostringstream msg; msg << "CMAKE_NMC_CROSS_CONFIGS is not a subset of " @@ -2657,6 +2659,7 @@ bool cmGlobalNinjaMultiGenerator::ReadCacheEntriesForBuild( defaultConfigsString = this->DefaultFileConfig; } if (!defaultConfigsString.empty() && + defaultConfigsString != this->DefaultFileConfig && (this->DefaultFileConfig.empty() || this->CrossConfigs.empty())) { std::ostringstream msg; msg << "CMAKE_NMC_DEFAULT_CONFIGS cannot be used without " @@ -2670,8 +2673,9 @@ bool cmGlobalNinjaMultiGenerator::ReadCacheEntriesForBuild( std::vector<std::string> defaultConfigsVec; cmExpandList(defaultConfigsString, defaultConfigsVec); if (!this->DefaultFileConfig.empty()) { - auto defaultConfigs = ListSubsetWithAll( - this->GetCrossConfigs(this->DefaultFileConfig), defaultConfigsVec); + auto defaultConfigs = + ListSubsetWithAll(this->GetCrossConfigs(this->DefaultFileConfig), + this->CrossConfigs, defaultConfigsVec); if (!defaultConfigs) { std::ostringstream msg; msg << "CMAKE_NMC_DEFAULT_CONFIGS is not a subset of " diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 0e53c0e..3db8356 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -211,6 +211,8 @@ public: } const char* GetCleanTargetName() const override { return "clean"; } + bool SupportsCustomCommandDepfile() const override { return true; } + virtual cmGeneratedFileStream* GetImplFileStream( const std::string& /*config*/) const { @@ -425,7 +427,7 @@ protected: const std::string& name); static cm::optional<std::set<std::string>> ListSubsetWithAll( - const std::set<std::string>& defaults, + const std::set<std::string>& all, const std::set<std::string>& defaults, const std::vector<std::string>& items); virtual bool InspectConfigTypeVariables() { return true; } diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 3d5c9c4..7ec4e65 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2817,11 +2817,11 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target) linkLibs += sep; sep = " "; if (libName.IsPath) { - linkLibs += this->XCodeEscapePath(libName.Value); + linkLibs += this->XCodeEscapePath(libName.Value.Value); } else if (!libName.Target || libName.Target->GetType() != cmStateEnums::INTERFACE_LIBRARY) { - linkLibs += libName.Value; + linkLibs += libName.Value.Value; } if (libName.Target && !libName.Target->IsImported()) { target->AddDependTarget(configName, libName.Target->GetName()); diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index c67358f..d669ed7 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -461,6 +461,10 @@ bool HandleTargetsMode(std::vector<std::string> const& args, std::unique_ptr<cmInstallFilesGenerator> publicHeaderGenerator; std::unique_ptr<cmInstallFilesGenerator> resourceGenerator; + // Avoid selecting default destinations for PUBLIC_HEADER and + // PRIVATE_HEADER if any artifacts are specified. + bool artifactsSpecified = false; + // Track whether this is a namelink-only rule. bool namelinkOnly = false; @@ -480,11 +484,13 @@ bool HandleTargetsMode(std::vector<std::string> const& args, // The import library uses the ARCHIVE properties. archiveGenerator = CreateInstallTargetGenerator( target, archiveArgs, true, helper.Makefile->GetBacktrace()); + artifactsSpecified = true; } if (!runtimeArgs.GetDestination().empty()) { // The DLL uses the RUNTIME properties. runtimeGenerator = CreateInstallTargetGenerator( target, runtimeArgs, false, helper.Makefile->GetBacktrace()); + artifactsSpecified = true; } if (!archiveGenerator && !runtimeGenerator) { archiveGenerator = CreateInstallTargetGenerator( @@ -517,6 +523,9 @@ bool HandleTargetsMode(std::vector<std::string> const& args, } } else { // The shared library uses the LIBRARY properties. + if (!libraryArgs.GetDestination().empty()) { + artifactsSpecified = true; + } if (namelinkMode != cmInstallTargetGenerator::NamelinkModeOnly) { libraryGenerator = CreateInstallTargetGenerator( target, libraryArgs, false, helper.Makefile->GetBacktrace(), @@ -558,6 +567,9 @@ bool HandleTargetsMode(std::vector<std::string> const& args, } } else { // Static libraries use ARCHIVE properties. + if (!archiveArgs.GetDestination().empty()) { + artifactsSpecified = true; + } archiveGenerator = CreateInstallTargetGenerator( target, archiveArgs, false, helper.Makefile->GetBacktrace(), helper.GetArchiveDestination(&archiveArgs)); @@ -625,6 +637,9 @@ bool HandleTargetsMode(std::vector<std::string> const& args, } } else { // Executables use the RUNTIME properties. + if (!runtimeArgs.GetDestination().empty()) { + artifactsSpecified = true; + } runtimeGenerator = CreateInstallTargetGenerator( target, runtimeArgs, false, helper.Makefile->GetBacktrace(), helper.GetRuntimeDestination(&runtimeArgs)); @@ -637,6 +652,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args, !archiveArgs.GetDestination().empty() && target.IsExecutableWithExports()) { // The import library uses the ARCHIVE properties. + artifactsSpecified = true; archiveGenerator = CreateInstallTargetGenerator( target, archiveArgs, true, helper.Makefile->GetBacktrace(), true); } @@ -673,9 +689,17 @@ bool HandleTargetsMode(std::vector<std::string> const& args, } // Create the files install generator. - privateHeaderGenerator = CreateInstallFilesGenerator( - helper.Makefile, absFiles, privateHeaderArgs, false, - helper.GetIncludeDestination(&privateHeaderArgs)); + if (!artifactsSpecified || + !privateHeaderArgs.GetDestination().empty()) { + privateHeaderGenerator = CreateInstallFilesGenerator( + helper.Makefile, absFiles, privateHeaderArgs, false, + helper.GetIncludeDestination(&privateHeaderArgs)); + } else { + std::ostringstream e; + e << "INSTALL TARGETS - target " << target.GetName() << " has " + << "PRIVATE_HEADER files but no PRIVATE_HEADER DESTINATION."; + cmSystemTools::Message(e.str(), "Warning"); + } } files = target.GetProperty("PUBLIC_HEADER"); @@ -687,9 +711,17 @@ bool HandleTargetsMode(std::vector<std::string> const& args, } // Create the files install generator. - publicHeaderGenerator = CreateInstallFilesGenerator( - helper.Makefile, absFiles, publicHeaderArgs, false, - helper.GetIncludeDestination(&publicHeaderArgs)); + if (!artifactsSpecified || + !publicHeaderArgs.GetDestination().empty()) { + publicHeaderGenerator = CreateInstallFilesGenerator( + helper.Makefile, absFiles, publicHeaderArgs, false, + helper.GetIncludeDestination(&publicHeaderArgs)); + } else { + std::ostringstream e; + e << "INSTALL TARGETS - target " << target.GetName() << " has " + << "PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION."; + cmSystemTools::Message(e.str(), "Warning"); + } } files = target.GetProperty("RESOURCE"); diff --git a/Source/cmLinkLineComputer.cxx b/Source/cmLinkLineComputer.cxx index 4320010..86ee953 100644 --- a/Source/cmLinkLineComputer.cxx +++ b/Source/cmLinkLineComputer.cxx @@ -9,7 +9,6 @@ #include "cmComputeLinkInformation.h" #include "cmGeneratorTarget.h" -#include "cmLinkItem.h" #include "cmListFileCache.h" #include "cmOutputConverter.h" #include "cmStateDirectory.h" @@ -85,27 +84,14 @@ void cmLinkLineComputer::ComputeLinkLibs( BT<std::string> linkLib; if (item.IsPath) { linkLib.Value += cli.GetLibLinkFileFlag(); - linkLib.Value += - this->ConvertToOutputFormat(this->ConvertToLinkReference(item.Value)); + linkLib.Value += this->ConvertToOutputFormat( + this->ConvertToLinkReference(item.Value.Value)); + linkLib.Backtrace = item.Value.Backtrace; } else { - linkLib.Value += item.Value; + linkLib = item.Value; } linkLib.Value += " "; - const cmLinkImplementation* linkImpl = - cli.GetTarget()->GetLinkImplementation(cli.GetConfig()); - - for (const cmLinkImplItem& iter : linkImpl->Libraries) { - if (iter.Target != nullptr && - iter.Target->GetType() != cmStateEnums::INTERFACE_LIBRARY) { - std::string libPath = iter.Target->GetLocation(cli.GetConfig()); - if (item.Value == libPath) { - linkLib.Backtrace = iter.Backtrace; - break; - } - } - } - linkLibraries.emplace_back(linkLib); } } diff --git a/Source/cmLinkLineDeviceComputer.cxx b/Source/cmLinkLineDeviceComputer.cxx index 847334b..65ed34c 100644 --- a/Source/cmLinkLineDeviceComputer.cxx +++ b/Source/cmLinkLineDeviceComputer.cxx @@ -115,18 +115,18 @@ void cmLinkLineDeviceComputer::ComputeLinkLibraries( // These should be passed to nvlink. Other extensions need to be left // out because nvlink may not understand or need them. Even though it // can tolerate '.so' or '.dylib' it cannot tolerate '.so.1'. - if (cmHasLiteralSuffix(item.Value, ".a") || - cmHasLiteralSuffix(item.Value, ".lib")) { + if (cmHasLiteralSuffix(item.Value.Value, ".a") || + cmHasLiteralSuffix(item.Value.Value, ".lib")) { linkLib.Value += this->ConvertToOutputFormat( - this->ConvertToLinkReference(item.Value)); + this->ConvertToLinkReference(item.Value.Value)); } } else if (item.Value == "-framework") { // This is the first part of '-framework Name' where the framework // name is specified as a following item. Ignore both. skipItemAfterFramework = true; continue; - } else if (cmLinkItemValidForDevice(item.Value)) { - linkLib.Value += item.Value; + } else if (cmLinkItemValidForDevice(item.Value.Value)) { + linkLib.Value += item.Value.Value; } if (emitted.insert(linkLib.Value).second) { diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 1a6b7b2..9aa3991 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1254,11 +1254,11 @@ void cmLocalVisualStudio7GeneratorInternals::OutputLibraries( for (auto const& lib : libs) { if (lib.IsPath) { std::string rel = - lg->MaybeConvertToRelativePath(currentBinDir, lib.Value); + lg->MaybeConvertToRelativePath(currentBinDir, lib.Value.Value); fout << lg->ConvertToXMLOutputPath(rel) << " "; } else if (!lib.Target || lib.Target->GetType() != cmStateEnums::INTERFACE_LIBRARY) { - fout << lib.Value << " "; + fout << lib.Value.Value << " "; } } } diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 6b45442..8da113e 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3259,13 +3259,13 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions( if (l.IsPath) { std::string path = this->LocalGenerator->MaybeConvertToRelativePath( - currentBinDir, l.Value); + currentBinDir, l.Value.Value); ConvertToWindowsSlash(path); - if (!cmVS10IsTargetsFile(l.Value)) { + if (!cmVS10IsTargetsFile(l.Value.Value)) { libVec.push_back(path); } } else { - libVec.push_back(l.Value); + libVec.push_back(l.Value.Value); } } @@ -3819,9 +3819,9 @@ bool cmVisualStudio10TargetGenerator::ComputeLibOptions( std::string currentBinDir = this->LocalGenerator->GetCurrentBinaryDirectory(); for (cmComputeLinkInformation::Item const& l : libs) { - if (l.IsPath && cmVS10IsTargetsFile(l.Value)) { + if (l.IsPath && cmVS10IsTargetsFile(l.Value.Value)) { std::string path = this->LocalGenerator->MaybeConvertToRelativePath( - currentBinDir, l.Value); + currentBinDir, l.Value.Value); ConvertToWindowsSlash(path); this->AddTargetsFileAndConfigPair(path, config); } @@ -3905,16 +3905,16 @@ void cmVisualStudio10TargetGenerator::AddLibraries( if (l.IsPath) { std::string path = this->LocalGenerator->MaybeConvertToRelativePath( - currentBinDir, l.Value); + currentBinDir, l.Value.Value); ConvertToWindowsSlash(path); - if (cmVS10IsTargetsFile(l.Value)) { + if (cmVS10IsTargetsFile(l.Value.Value)) { vsTargetVec.push_back(path); } else { libVec.push_back(path); } } else if (!l.Target || l.Target->GetType() != cmStateEnums::INTERFACE_LIBRARY) { - libVec.push_back(l.Value); + libVec.push_back(l.Value.Value); } } } diff --git a/Tests/CMakeOnly/CheckStructHasMember/CMakeLists.txt b/Tests/CMakeOnly/CheckStructHasMember/CMakeLists.txt index a584505..859ec41 100644 --- a/Tests/CMakeOnly/CheckStructHasMember/CMakeLists.txt +++ b/Tests/CMakeOnly/CheckStructHasMember/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}") include(CheckStructHasMember) -foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) +foreach(_config_type Release RelWithDebInfo Debug) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) unset(CSHM_RESULT_S1_${_config_type} CACHE) unset(CSHM_RESULT_S2_${_config_type} CACHE) @@ -26,7 +26,7 @@ foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) endif() endforeach() -foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) +foreach(_config_type Release RelWithDebInfo Debug) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) unset(CSHM_RESULT_S1_${_config_type}_C CACHE) unset(CSHM_RESULT_S2_${_config_type}_C CACHE) @@ -46,7 +46,7 @@ foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) endif() endforeach() -foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) +foreach(_config_type Release RelWithDebInfo Debug) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) unset(CSHM_RESULT_S1_${_config_type}_CXX CACHE) unset(CSHM_RESULT_S2_${_config_type}_CXX CACHE) diff --git a/Tests/CMakeOnly/Test.cmake.in b/Tests/CMakeOnly/Test.cmake.in index 0ae8af1..c531e8b 100644 --- a/Tests/CMakeOnly/Test.cmake.in +++ b/Tests/CMakeOnly/Test.cmake.in @@ -7,6 +7,13 @@ if(make_program) set(maybe_make_program "-DCMAKE_MAKE_PROGRAM=${make_program}") endif() +set(_isMultiConfig "@_isMultiConfig@") +if(_isMultiConfig) + set(cfg_opts "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;RelWithDebInfo") +else() + set(cfg_opts) +endif() + set(source_dir "@CMAKE_CURRENT_SOURCE_DIR@/${TEST_SOURCE}") set(binary_dir "@CMAKE_CURRENT_BINARY_DIR@/${TEST}-build") file(REMOVE_RECURSE "${binary_dir}") @@ -16,6 +23,7 @@ execute_process( "${source_dir}" -G "@CMAKE_GENERATOR@" -A "@CMAKE_GENERATOR_PLATFORM@" -T "@CMAKE_GENERATOR_TOOLSET@" + ${cfg_opts} ${maybe_make_program} WORKING_DIRECTORY "${binary_dir}" RESULT_VARIABLE result diff --git a/Tests/CTestConfig/dashboard.cmake.in b/Tests/CTestConfig/dashboard.cmake.in index 4bb1262..34824e3 100644 --- a/Tests/CTestConfig/dashboard.cmake.in +++ b/Tests/CTestConfig/dashboard.cmake.in @@ -13,6 +13,8 @@ message("CMAKE_CTEST_COMMAND='${CMAKE_CTEST_COMMAND}'") set(arg "") if(NOT _isMultiConfig) set(arg "-DCMAKE_BUILD_TYPE:STRING=@cfg@") +else() + set(arg "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo") endif() message("cmake initial configure") diff --git a/Tests/CTestConfig/script.cmake.in b/Tests/CTestConfig/script.cmake.in index 973c7b8..59c585b 100644 --- a/Tests/CTestConfig/script.cmake.in +++ b/Tests/CTestConfig/script.cmake.in @@ -6,7 +6,14 @@ set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestConfig/@cfg@-script") ctest_start(Experimental) -ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE rv) +set(_isMultiConfig "@_isMultiConfig@") +if(_isMultiConfig) + set(cfg_opts "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo") +else() + set(cfg_opts) +endif() + +ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS "${cfg_opts}" RETURN_VALUE rv) if(NOT rv STREQUAL 0) message(FATAL_ERROR "*** error in ctest_configure ***") endif() diff --git a/Tests/FindPython/VirtualEnv/CMakeLists.txt b/Tests/FindPython/VirtualEnv/CMakeLists.txt index 9e8c673..045a3f2 100644 --- a/Tests/FindPython/VirtualEnv/CMakeLists.txt +++ b/Tests/FindPython/VirtualEnv/CMakeLists.txt @@ -10,6 +10,7 @@ if (NOT Python3_FOUND) endif() set (Python3_VIRTUAL_ENV "${CMAKE_CURRENT_BINARY_DIR}/py3venv") +file (REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/py3venv") execute_process (COMMAND "${Python3_EXECUTABLE}" -m venv "${Python3_VIRTUAL_ENV}" RESULT_VARIABLE result diff --git a/Tests/RunCMake/FileAPI/RunCMakeTest.cmake b/Tests/RunCMake/FileAPI/RunCMakeTest.cmake index f8adb64..8cdc00c 100644 --- a/Tests/RunCMake/FileAPI/RunCMakeTest.cmake +++ b/Tests/RunCMake/FileAPI/RunCMakeTest.cmake @@ -34,6 +34,10 @@ function(check_python case) endif() endfunction() +if(RunCMake_GENERATOR_IS_MULTI_CONFIG) + set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo") +endif() + run_cmake(Nothing) run_cmake(Empty) run_cmake(EmptyClient) diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-check.py b/Tests/RunCMake/FileAPI/codemodel-v2-check.py index de6253f..9ee0c20 100644 --- a/Tests/RunCMake/FileAPI/codemodel-v2-check.py +++ b/Tests/RunCMake/FileAPI/codemodel-v2-check.py @@ -1,8 +1,14 @@ from check_index import * +import json import sys import os +def read_codemodel_json_data(filename): + abs_filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), "codemodel-v2-data", filename) + with open(abs_filename, "r") as f: + return json.load(f) + def check_objects(o, g): assert is_list(o) assert len(o) == 1 @@ -471,154 +477,15 @@ def check_project(c): def gen_check_directories(c, g): expected = [ - { - "source": "^\\.$", - "build": "^\\.$", - "parentSource": None, - "childSources": [ - "^alias$", - "^custom$", - "^cxx$", - "^imported$", - "^object$", - "^.*/Tests/RunCMake/FileAPIExternalSource$", - "^dir$", - ], - "targetIds": [ - "^ALL_BUILD::@6890427a1f51a3e7e1df$", - "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "^c_exe::@6890427a1f51a3e7e1df$", - "^c_lib::@6890427a1f51a3e7e1df$", - "^c_shared_exe::@6890427a1f51a3e7e1df$", - "^c_shared_lib::@6890427a1f51a3e7e1df$", - "^c_static_exe::@6890427a1f51a3e7e1df$", - "^c_static_lib::@6890427a1f51a3e7e1df$", - "^interface_exe::@6890427a1f51a3e7e1df$", - ], - "projectName": "codemodel-v2", - "minimumCMakeVersion": "3.12", - "hasInstallRule": True, - }, - { - "source": "^alias$", - "build": "^alias$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@53632cba2752272bb008$", - "^ZERO_CHECK::@53632cba2752272bb008$", - "^c_alias_exe::@53632cba2752272bb008$", - "^cxx_alias_exe::@53632cba2752272bb008$", - ], - "projectName": "Alias", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^custom$", - "build": "^custom$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@c11385ffed57b860da63$", - "^ZERO_CHECK::@c11385ffed57b860da63$", - "^custom_exe::@c11385ffed57b860da63$", - "^custom_tgt::@c11385ffed57b860da63$", - ], - "projectName": "Custom", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^cxx$", - "build": "^cxx$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@a56b12a3f5c0529fb296$", - "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "^cxx_exe::@a56b12a3f5c0529fb296$", - "^cxx_lib::@a56b12a3f5c0529fb296$", - "^cxx_shared_exe::@a56b12a3f5c0529fb296$", - "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "^cxx_static_exe::@a56b12a3f5c0529fb296$", - "^cxx_static_lib::@a56b12a3f5c0529fb296$", - ], - "projectName": "Cxx", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^imported$", - "build": "^imported$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@ba7eb709d0b48779c6c8$", - "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "^link_imported_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", - ], - "projectName": "Imported", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^object$", - "build": "^object$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@5ed5358f70faf8d8af7a$", - "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "^c_object_exe::@5ed5358f70faf8d8af7a$", - "^c_object_lib::@5ed5358f70faf8d8af7a$", - "^cxx_object_exe::@5ed5358f70faf8d8af7a$", - "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - ], - "projectName": "Object", - "minimumCMakeVersion": "3.13", - "hasInstallRule": True, - }, - { - "source": "^dir$", - "build": "^dir$", - "parentSource": "^\\.$", - "childSources": [ - "^dir/dir$", - ], - "targetIds": None, - "projectName": "codemodel-v2", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^dir/dir$", - "build": "^dir/dir$", - "parentSource": "^dir$", - "childSources": None, - "targetIds": None, - "projectName": "codemodel-v2", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, - { - "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", - "parentSource": "^\\.$", - "childSources": None, - "targetIds": [ - "^ALL_BUILD::@[0-9a-f]+$", - "^ZERO_CHECK::@[0-9a-f]+$", - "^generated_exe::@[0-9a-f]+$", - ], - "projectName": "External", - "minimumCMakeVersion": "3.12", - "hasInstallRule": None, - }, + read_codemodel_json_data("directories/top.json"), + read_codemodel_json_data("directories/alias.json"), + read_codemodel_json_data("directories/custom.json"), + read_codemodel_json_data("directories/cxx.json"), + read_codemodel_json_data("directories/imported.json"), + read_codemodel_json_data("directories/object.json"), + read_codemodel_json_data("directories/dir.json"), + read_codemodel_json_data("directories/dir_dir.json"), + read_codemodel_json_data("directories/external.json"), ] if matches(g["name"], "^Visual Studio "): @@ -646,4428 +513,52 @@ def check_directories(c, g): def gen_check_targets(c, g, inSource): expected = [ - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^interface_exe::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_lib::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_exe::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_shared_exe::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_static_lib::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_static_exe::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - { - "id": "^c_alias_exe::@53632cba2752272bb008$", - "backtrace": None, - }, - { - "id": "^cxx_alias_exe::@53632cba2752272bb008$", - "backtrace": None, - }, - { - "id": "^cxx_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^custom_exe::@c11385ffed57b860da63$", - "backtrace": None, - }, - { - "id": "^generated_exe::@[0-9a-f]+$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "interface_exe", - "id": "^interface_exe::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^include_test\\.cmake$", - "line": 3, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^include_test\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": [ - { - "define": "interface_exe_EXPORTS", - "backtrace": None, - }, - ], - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^include_test\\.cmake$", - "line": 3, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^include_test\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^my_interface_exe\\.myexe$", - "artifacts": [ - { - "path": "^bin/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?my_interface_exe\\.myexe$", - "_dllExtra": False, - }, - { - "path": "^lib/my_interface_exe\\.imp$", - "_aixExtra": True, - "_dllExtra": False, - }, - { - "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?my_interface_exe\\.(dll\\.a|lib)$", - "_dllExtra": True, - }, - { - "path": "^bin/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?my_interface_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_lib", - "id": "^c_lib::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "STATIC_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 5, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 5, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib)?c_lib\\.(a|lib)$", - "artifacts": [ - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_lib\\.(a|lib)$", - "_dllExtra": False, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": None, - "archive": { - "lto": None, - }, - "dependencies": [ - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_exe", - "id": "^c_exe::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 6, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 6, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^c_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^c_lib::@6890427a1f51a3e7e1df$", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 7, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_shared_lib", - "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "SHARED_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": [ - { - "define": "c_shared_lib_EXPORTS", - "backtrace": None, - }, - ], - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib|cyg)?c_shared_lib\\.(so|dylib|dll)$", - "artifacts": [ - { - "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?c_shared_lib\\.(so|dylib|dll)$", - "_dllExtra": False, - }, - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_shared_lib\\.(dll\\.a|lib)$", - "_dllExtra": True, - }, - { - "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?c_shared_lib\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": { - "language": "C", - "lto": True, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_shared_exe", - "id": "^c_shared_exe::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^c_shared_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_shared_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_shared_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": { - "language": "C", - "lto": True, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 11, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_static_lib", - "id": "^c_static_lib::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "STATIC_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 13, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 13, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib)?c_static_lib\\.(a|lib)$", - "artifacts": [ - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_static_lib\\.(a|lib)$", - "_dllExtra": False, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": None, - "archive": { - "lto": True, - }, - "dependencies": [ - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "c_static_exe", - "id": "^c_static_exe::@6890427a1f51a3e7e1df$", - "directorySource": "^\\.$", - "projectName": "codemodel-v2", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 14, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 14, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^c_static_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_static_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_static_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^\\.$", - "source": "^\\.$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^c_static_lib::@6890427a1f51a3e7e1df$", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 15, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - { - "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "cxx_lib", - "id": "^cxx_lib::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "STATIC_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 4, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 4, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib)?cxx_lib\\.(a|lib)$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_lib\\.(a|lib)$", - "_dllExtra": False, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": None, - "archive": { - "lto": None, - }, - "dependencies": [ - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_exe", - "id": "^cxx_exe::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": [ - { - "fragment" : "TargetCompileOptions", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 17, - "command": "target_compile_options", - "hasParent": True, - }, - { - "file" : "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - } - ], - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": "bin", - "nameOnDisk": "^cxx_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": { - "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", - "destinations": [ - { - "path": "bin", - "backtrace": [ - { - "file": "^codemodel-v2\\.cmake$", - "line": 37, - "command": "install", - "hasParent": True, - }, - { - "file": "^codemodel-v2\\.cmake$", - "line": None, - "command": None, - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": 3, - "command": "include", - "hasParent": True, - }, - { - "file": "^CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - }, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": [ - { - "fragment" : "TargetLinkOptions", - "role" : "flags", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 18, - "command": "target_link_options", - "hasParent": True, - }, - { - "file" : "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "fragment" : ".*TargetLinkDir\\\"?$", - "role" : "libraryPath", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 19, - "command": "target_link_directories", - "hasParent": True, - }, - { - "file" : "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "fragment" : ".*cxx_lib.*", - "role" : "libraries", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 6, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file" : "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - }, - "archive": None, - "dependencies": [ - { - "id": "^cxx_lib::@a56b12a3f5c0529fb296$", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 6, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_shared_lib", - "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "SHARED_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": [ - { - "define": "cxx_shared_lib_EXPORTS", - "backtrace": None, - }, - ], - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib|cyg)?cxx_shared_lib\\.(so|dylib|dll)$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?cxx_shared_lib\\.(so|dylib|dll)$", - "_dllExtra": False, - }, - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_shared_lib\\.(dll\\.a|lib)$", - "_dllExtra": True, - }, - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?cxx_shared_lib\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_shared_exe", - "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^cxx_shared_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_shared_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_shared_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 11, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_static_lib", - "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "STATIC_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 13, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 13, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^(lib)?cxx_static_lib\\.(a|lib)$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_static_lib\\.(a|lib)$", - "_dllExtra": False, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": None, - "archive": { - "lto": None, - }, - "dependencies": [ - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_static_exe", - "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", - "directorySource": "^cxx$", - "projectName": "Cxx", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 14, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 14, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^cxx_static_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_static_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_static_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^cxx$", - "source": "^cxx$", - "install": None, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", - "backtrace": [ - { - "file": "^cxx/CMakeLists\\.txt$", - "line": 15, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^cxx/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@53632cba2752272bb008$", - "directorySource": "^alias$", - "projectName": "Alias", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^alias$", - "source": "^alias$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@53632cba2752272bb008$", - "backtrace": None, - }, - { - "id": "^c_alias_exe::@53632cba2752272bb008$", - "backtrace": None, - }, - { - "id": "^cxx_alias_exe::@53632cba2752272bb008$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@53632cba2752272bb008$", - "directorySource": "^alias$", - "projectName": "Alias", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^alias$", - "source": "^alias$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "c_alias_exe", - "id": "^c_alias_exe::@53632cba2752272bb008$", - "directorySource": "^alias$", - "projectName": "Alias", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^c_alias_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_alias_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_alias_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^alias$", - "source": "^alias$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^c_lib::@6890427a1f51a3e7e1df$", - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 6, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@53632cba2752272bb008$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_alias_exe", - "id": "^cxx_alias_exe::@53632cba2752272bb008$", - "directorySource": "^alias$", - "projectName": "Alias", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 9, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 9, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^cxx_alias_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_alias_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_alias_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^alias$", - "source": "^alias$", - "install": None, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^cxx_lib::@a56b12a3f5c0529fb296$", - "backtrace": [ - { - "file": "^alias/CMakeLists\\.txt$", - "line": 10, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^alias/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@53632cba2752272bb008$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^object$", - "source": "^object$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - { - "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^object$", - "source": "^object$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "c_object_lib", - "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "OBJECT_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 5, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 5, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": [ - { - "path": "^object/.*/empty(\\.c)?\\.o(bj)?$", - "_dllExtra": False, - }, - ], - "build": "^object$", - "source": "^object$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - ], - }, - { - "name": "c_object_exe", - "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 6, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.c)?\\.o(bj)?$", - "isGenerated": True, - "sourceGroupName": "Object Libraries", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 7, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - { - "name": "Object Libraries", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.c)?\\.o(bj)?$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 6, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^c_object_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_object_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_object_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^object$", - "source": "^object$", - "install": { - "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", - "destinations": [ - { - "path": "bin", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 13, - "command": "install", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - }, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", - # FIXME: Add a backtrace here when it becomes available. - # You'll know when it's available, because this test will - # fail. - "backtrace": None, - }, - { - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_object_lib", - "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "OBJECT_LIBRARY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 9, - "command": "add_library", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": [ - { - "path": "^object/.*/empty(\\.cxx)?\\.o(bj)?$", - "_dllExtra": False, - }, - ], - "build": "^object$", - "source": "^object$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - ], - }, - { - "name": "cxx_object_exe", - "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", - "directorySource": "^object$", - "projectName": "Object", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.cxx$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.cxx)?\\.o(bj)?$", - "isGenerated": True, - "sourceGroupName": "Object Libraries", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 11, - "command": "target_link_libraries", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.cxx$", - ], - }, - { - "name": "Object Libraries", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.cxx)?\\.o(bj)?$", - ], - }, - ], - "compileGroups": [ - { - "language": "CXX", - "sourcePaths": [ - "^empty\\.cxx$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 10, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^cxx_object_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_object_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_object_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^object$", - "source": "^object$", - "install": { - "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", - "destinations": [ - { - "path": "bin", - "backtrace": [ - { - "file": "^object/CMakeLists\\.txt$", - "line": 13, - "command": "install", - "hasParent": True, - }, - { - "file": "^object/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - }, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - # FIXME: Add a backtrace here when it becomes available. - # You'll know when it's available, because this test will - # fail. - "backtrace": None, - }, - { - "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - { - "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "link_imported_exe", - "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^link_imported_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "link_imported_shared_exe", - "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 9, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 9, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^link_imported_shared_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_shared_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_shared_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "link_imported_static_exe", - "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 13, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 13, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^link_imported_static_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_static_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_static_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "link_imported_object_exe", - "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 18, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 18, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^link_imported_object_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_object_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_object_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "link_imported_interface_exe", - "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", - "directorySource": "^imported$", - "projectName": "Imported", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 23, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^imported/CMakeLists\\.txt$", - "line": 23, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^imported/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^link_imported_interface_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_interface_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_interface_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^imported$", - "source": "^imported$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@c11385ffed57b860da63$", - "directorySource": "^custom$", - "projectName": "Custom", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^custom$", - "source": "^custom$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@c11385ffed57b860da63$", - "backtrace": None, - }, - { - "id": "^custom_exe::@c11385ffed57b860da63$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@c11385ffed57b860da63$", - "directorySource": "^custom$", - "projectName": "Custom", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^custom$", - "source": "^custom$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "custom_tgt", - "id": "^custom_tgt::@c11385ffed57b860da63$", - "directorySource": "^custom$", - "projectName": "Custom", - "type": "UTILITY", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/custom_tgt$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": 3, - "command": "add_custom_target", - "hasParent": True, - }, - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/(custom/)?CMakeFiles/([0-9a-f]+/)?custom_tgt\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/custom_tgt$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/(custom/)?CMakeFiles/([0-9a-f]+/)?custom_tgt\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": 3, - "command": "add_custom_target", - "hasParent": True, - }, - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^custom$", - "source": "^custom$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@c11385ffed57b860da63$", - "backtrace": None, - }, - ], - }, - { - "name": "custom_exe", - "id": "^custom_exe::@c11385ffed57b860da63$", - "directorySource": "^custom$", - "projectName": "Custom", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": 4, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^empty\\.c$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^empty\\.c$", - ], - "includes": None, - "defines": None, - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": 4, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^custom_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^custom/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?custom_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^custom/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?custom_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^custom$", - "source": "^custom$", - "install": None, - "link": { - "language": "C", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^custom_tgt::@c11385ffed57b860da63$", - "backtrace": [ - { - "file": "^custom/CMakeLists\\.txt$", - "line": 5, - "command": "add_dependencies", - "hasParent": True, - }, - { - "file": "^custom/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "id": "^ZERO_CHECK::@c11385ffed57b860da63$", - "backtrace": None, - }, - ], - }, - { - "name": "ALL_BUILD", - "id": "^ALL_BUILD::@[0-9a-f]+$", - "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "projectName": "External", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", - "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "install": None, - "link": None, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@[0-9a-f]+$", - "backtrace": None, - }, - { - "id": "^generated_exe::@[0-9a-f]+$", - "backtrace": None, - }, - ], - }, - { - "name": "ZERO_CHECK", - "id": "^ZERO_CHECK::@[0-9a-f]+$", - "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "projectName": "External", - "type": "UTILITY", - "isGeneratorProvided": True, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK$", - "isGenerated": True, - "sourceGroupName": "", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK\\.rule$", - "isGenerated": True, - "sourceGroupName": "CMake Rules", - "compileGroupLanguage": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK$", - ], - }, - { - "name": "CMake Rules", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK\\.rule$", - ], - }, - ], - "compileGroups": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": None, - "artifacts": None, - "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", - "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "install": None, - "link": None, - "archive": None, - "dependencies": None, - }, - { - "name": "generated_exe", - "id": "^generated_exe::@[0-9a-f]+$", - "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "projectName": "External", - "type": "EXECUTABLE", - "isGeneratorProvided": None, - "sources": [ - { - "path": "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$", - "isGenerated": None, - "sourceGroupName": "Source Files", - "compileGroupLanguage": "C", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$", - "isGenerated": True, - "sourceGroupName": "Generated Source Files", - "compileGroupLanguage": "CXX", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 6, - "command": "target_sources", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "sourceGroups": [ - { - "name": "Source Files", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$", - ], - }, - { - "name": "Generated Source Files", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$", - ], - }, - ], - "compileGroups": [ - { - "language": "C", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$", - ], - "includes": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", - "isSystem": None, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 10, - "command": "set_property", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "path": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "isSystem": True, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 11, - "command": "target_include_directories", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "defines": [ - { - "define": "EMPTY_C=1", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 9, - "command": "set_property", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "define": "SRC_DUMMY", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 9, - "command": "set_property", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "define": "GENERATED_EXE=1", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 12, - "command": "target_compile_definitions", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "define": "TGT_DUMMY", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 12, - "command": "target_compile_definitions", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "compileCommandFragments": [ - { - "fragment" : "SRC_COMPILE_OPTIONS_DUMMY", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 13, - "command": "set_source_files_properties", - "hasParent": True, - }, - { - "file" : "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - } - ], - }, - { - "language": "CXX", - "sourcePaths": [ - "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$", - ], - "includes": [ - { - "path": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "isSystem": True, - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 11, - "command": "target_include_directories", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "defines": [ - { - "define": "GENERATED_EXE=1", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 12, - "command": "target_compile_definitions", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - { - "define": "TGT_DUMMY", - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 12, - "command": "target_compile_definitions", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - }, - ], - "compileCommandFragments": None, - }, - ], - "backtrace": [ - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": 5, - "command": "add_executable", - "hasParent": True, - }, - { - "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", - "line": None, - "command": None, - "hasParent": False, - }, - ], - "folder": None, - "nameOnDisk": "^generated_exe(\\.exe)?$", - "artifacts": [ - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?generated_exe(\\.exe)?$", - "_dllExtra": False, - }, - { - "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?generated_exe\\.pdb$", - "_dllExtra": True, - }, - ], - "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", - "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", - "install": None, - "link": { - "language": "CXX", - "lto": None, - "commandFragments": None, - }, - "archive": None, - "dependencies": [ - { - "id": "^ZERO_CHECK::@[0-9a-f]+$", - "backtrace": None, - }, - ], - }, + read_codemodel_json_data("targets/all_build_top.json"), + read_codemodel_json_data("targets/zero_check_top.json"), + read_codemodel_json_data("targets/interface_exe.json"), + read_codemodel_json_data("targets/c_lib.json"), + read_codemodel_json_data("targets/c_exe.json"), + read_codemodel_json_data("targets/c_shared_lib.json"), + read_codemodel_json_data("targets/c_shared_exe.json"), + read_codemodel_json_data("targets/c_static_lib.json"), + read_codemodel_json_data("targets/c_static_exe.json"), + + read_codemodel_json_data("targets/all_build_cxx.json"), + read_codemodel_json_data("targets/zero_check_cxx.json"), + read_codemodel_json_data("targets/cxx_lib.json"), + read_codemodel_json_data("targets/cxx_exe.json"), + read_codemodel_json_data("targets/cxx_shared_lib.json"), + read_codemodel_json_data("targets/cxx_shared_exe.json"), + read_codemodel_json_data("targets/cxx_static_lib.json"), + read_codemodel_json_data("targets/cxx_static_exe.json"), + + read_codemodel_json_data("targets/all_build_alias.json"), + read_codemodel_json_data("targets/zero_check_alias.json"), + read_codemodel_json_data("targets/c_alias_exe.json"), + read_codemodel_json_data("targets/cxx_alias_exe.json"), + + read_codemodel_json_data("targets/all_build_object.json"), + read_codemodel_json_data("targets/zero_check_object.json"), + read_codemodel_json_data("targets/c_object_lib.json"), + read_codemodel_json_data("targets/c_object_exe.json"), + read_codemodel_json_data("targets/cxx_object_lib.json"), + read_codemodel_json_data("targets/cxx_object_exe.json"), + + read_codemodel_json_data("targets/all_build_imported.json"), + read_codemodel_json_data("targets/zero_check_imported.json"), + read_codemodel_json_data("targets/link_imported_exe.json"), + read_codemodel_json_data("targets/link_imported_shared_exe.json"), + read_codemodel_json_data("targets/link_imported_static_exe.json"), + read_codemodel_json_data("targets/link_imported_object_exe.json"), + read_codemodel_json_data("targets/link_imported_interface_exe.json"), + + read_codemodel_json_data("targets/all_build_custom.json"), + read_codemodel_json_data("targets/zero_check_custom.json"), + read_codemodel_json_data("targets/custom_tgt.json"), + read_codemodel_json_data("targets/custom_exe.json"), + read_codemodel_json_data("targets/all_build_external.json"), + read_codemodel_json_data("targets/zero_check_external.json"), + read_codemodel_json_data("targets/generated_exe.json"), ] if not os.path.exists(os.path.join(reply_dir, "..", "..", "..", "..", "ipo_enabled.txt")): @@ -5164,126 +655,13 @@ def check_targets(c, g, inSource): def gen_check_projects(c, g): expected = [ - { - "name": "codemodel-v2", - "parentName": None, - "childNames": [ - "Alias", - "Custom", - "Cxx", - "Imported", - "Object", - "External", - ], - "directorySources": [ - "^\\.$", - "^dir$", - "^dir/dir$", - ], - "targetIds": [ - "^ALL_BUILD::@6890427a1f51a3e7e1df$", - "^ZERO_CHECK::@6890427a1f51a3e7e1df$", - "^interface_exe::@6890427a1f51a3e7e1df$", - "^c_lib::@6890427a1f51a3e7e1df$", - "^c_exe::@6890427a1f51a3e7e1df$", - "^c_shared_lib::@6890427a1f51a3e7e1df$", - "^c_shared_exe::@6890427a1f51a3e7e1df$", - "^c_static_lib::@6890427a1f51a3e7e1df$", - "^c_static_exe::@6890427a1f51a3e7e1df$", - ], - }, - { - "name": "Cxx", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^cxx$", - ], - "targetIds": [ - "^ALL_BUILD::@a56b12a3f5c0529fb296$", - "^ZERO_CHECK::@a56b12a3f5c0529fb296$", - "^cxx_lib::@a56b12a3f5c0529fb296$", - "^cxx_exe::@a56b12a3f5c0529fb296$", - "^cxx_shared_lib::@a56b12a3f5c0529fb296$", - "^cxx_shared_exe::@a56b12a3f5c0529fb296$", - "^cxx_static_lib::@a56b12a3f5c0529fb296$", - "^cxx_static_exe::@a56b12a3f5c0529fb296$", - ], - }, - { - "name": "Alias", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^alias$", - ], - "targetIds": [ - "^ALL_BUILD::@53632cba2752272bb008$", - "^ZERO_CHECK::@53632cba2752272bb008$", - "^c_alias_exe::@53632cba2752272bb008$", - "^cxx_alias_exe::@53632cba2752272bb008$", - ], - }, - { - "name": "Object", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^object$", - ], - "targetIds": [ - "^ALL_BUILD::@5ed5358f70faf8d8af7a$", - "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", - "^c_object_lib::@5ed5358f70faf8d8af7a$", - "^c_object_exe::@5ed5358f70faf8d8af7a$", - "^cxx_object_lib::@5ed5358f70faf8d8af7a$", - "^cxx_object_exe::@5ed5358f70faf8d8af7a$", - ], - }, - { - "name": "Imported", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^imported$", - ], - "targetIds": [ - "^ALL_BUILD::@ba7eb709d0b48779c6c8$", - "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", - "^link_imported_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", - "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", - ], - }, - { - "name": "Custom", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^custom$", - ], - "targetIds": [ - "^ALL_BUILD::@c11385ffed57b860da63$", - "^ZERO_CHECK::@c11385ffed57b860da63$", - "^custom_tgt::@c11385ffed57b860da63$", - "^custom_exe::@c11385ffed57b860da63$", - ], - }, - { - "name": "External", - "parentName": "codemodel-v2", - "childNames": None, - "directorySources": [ - "^.*/Tests/RunCMake/FileAPIExternalSource$", - ], - "targetIds": [ - "^ALL_BUILD::@[0-9a-f]+$", - "^ZERO_CHECK::@[0-9a-f]+$", - "^generated_exe::@[0-9a-f]+$", - ], - }, + read_codemodel_json_data("projects/codemodel-v2.json"), + read_codemodel_json_data("projects/cxx.json"), + read_codemodel_json_data("projects/alias.json"), + read_codemodel_json_data("projects/object.json"), + read_codemodel_json_data("projects/imported.json"), + read_codemodel_json_data("projects/custom.json"), + read_codemodel_json_data("projects/external.json"), ] if matches(g["name"], "^Visual Studio "): diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/alias.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/alias.json new file mode 100644 index 0000000..9f0c48a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/alias.json @@ -0,0 +1,15 @@ +{ + "source": "^alias$", + "build": "^alias$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@53632cba2752272bb008$", + "^ZERO_CHECK::@53632cba2752272bb008$", + "^c_alias_exe::@53632cba2752272bb008$", + "^cxx_alias_exe::@53632cba2752272bb008$" + ], + "projectName": "Alias", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/custom.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/custom.json new file mode 100644 index 0000000..afd41f3 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/custom.json @@ -0,0 +1,15 @@ +{ + "source": "^custom$", + "build": "^custom$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@c11385ffed57b860da63$", + "^ZERO_CHECK::@c11385ffed57b860da63$", + "^custom_exe::@c11385ffed57b860da63$", + "^custom_tgt::@c11385ffed57b860da63$" + ], + "projectName": "Custom", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/cxx.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/cxx.json new file mode 100644 index 0000000..ebe717a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/cxx.json @@ -0,0 +1,19 @@ +{ + "source": "^cxx$", + "build": "^cxx$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@a56b12a3f5c0529fb296$", + "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "^cxx_exe::@a56b12a3f5c0529fb296$", + "^cxx_lib::@a56b12a3f5c0529fb296$", + "^cxx_shared_exe::@a56b12a3f5c0529fb296$", + "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "^cxx_static_exe::@a56b12a3f5c0529fb296$", + "^cxx_static_lib::@a56b12a3f5c0529fb296$" + ], + "projectName": "Cxx", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir.json new file mode 100644 index 0000000..afbd43a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir.json @@ -0,0 +1,12 @@ +{ + "source": "^dir$", + "build": "^dir$", + "parentSource": "^\\.$", + "childSources": [ + "^dir/dir$" + ], + "targetIds": null, + "projectName": "codemodel-v2", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir_dir.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir_dir.json new file mode 100644 index 0000000..3737ad5 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/dir_dir.json @@ -0,0 +1,10 @@ +{ + "source": "^dir/dir$", + "build": "^dir/dir$", + "parentSource": "^dir$", + "childSources": null, + "targetIds": null, + "projectName": "codemodel-v2", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/external.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/external.json new file mode 100644 index 0000000..521e3c7 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/external.json @@ -0,0 +1,14 @@ +{ + "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@[0-9a-f]+$", + "^ZERO_CHECK::@[0-9a-f]+$", + "^generated_exe::@[0-9a-f]+$" + ], + "projectName": "External", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/imported.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/imported.json new file mode 100644 index 0000000..a41b79b --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/imported.json @@ -0,0 +1,18 @@ +{ + "source": "^imported$", + "build": "^imported$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@ba7eb709d0b48779c6c8$", + "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "^link_imported_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_static_exe::@ba7eb709d0b48779c6c8$" + ], + "projectName": "Imported", + "minimumCMakeVersion": "3.12", + "hasInstallRule": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/object.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/object.json new file mode 100644 index 0000000..1e647ad --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/object.json @@ -0,0 +1,17 @@ +{ + "source": "^object$", + "build": "^object$", + "parentSource": "^\\.$", + "childSources": null, + "targetIds": [ + "^ALL_BUILD::@5ed5358f70faf8d8af7a$", + "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "^c_object_exe::@5ed5358f70faf8d8af7a$", + "^c_object_lib::@5ed5358f70faf8d8af7a$", + "^cxx_object_exe::@5ed5358f70faf8d8af7a$", + "^cxx_object_lib::@5ed5358f70faf8d8af7a$" + ], + "projectName": "Object", + "minimumCMakeVersion": "3.13", + "hasInstallRule": true +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/top.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/top.json new file mode 100644 index 0000000..c144953 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/directories/top.json @@ -0,0 +1,28 @@ +{ + "source": "^\\.$", + "build": "^\\.$", + "parentSource": null, + "childSources": [ + "^alias$", + "^custom$", + "^cxx$", + "^imported$", + "^object$", + "^.*/Tests/RunCMake/FileAPIExternalSource$", + "^dir$" + ], + "targetIds": [ + "^ALL_BUILD::@6890427a1f51a3e7e1df$", + "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "^c_exe::@6890427a1f51a3e7e1df$", + "^c_lib::@6890427a1f51a3e7e1df$", + "^c_shared_exe::@6890427a1f51a3e7e1df$", + "^c_shared_lib::@6890427a1f51a3e7e1df$", + "^c_static_exe::@6890427a1f51a3e7e1df$", + "^c_static_lib::@6890427a1f51a3e7e1df$", + "^interface_exe::@6890427a1f51a3e7e1df$" + ], + "projectName": "codemodel-v2", + "minimumCMakeVersion": "3.12", + "hasInstallRule": true +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/alias.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/alias.json new file mode 100644 index 0000000..8ede60f --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/alias.json @@ -0,0 +1,14 @@ +{ + "name": "Alias", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^alias$" + ], + "targetIds": [ + "^ALL_BUILD::@53632cba2752272bb008$", + "^ZERO_CHECK::@53632cba2752272bb008$", + "^c_alias_exe::@53632cba2752272bb008$", + "^cxx_alias_exe::@53632cba2752272bb008$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/codemodel-v2.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/codemodel-v2.json new file mode 100644 index 0000000..f3aac63 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/codemodel-v2.json @@ -0,0 +1,28 @@ +{ + "name": "codemodel-v2", + "parentName": null, + "childNames": [ + "Alias", + "Custom", + "Cxx", + "Imported", + "Object", + "External" + ], + "directorySources": [ + "^\\.$", + "^dir$", + "^dir/dir$" + ], + "targetIds": [ + "^ALL_BUILD::@6890427a1f51a3e7e1df$", + "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "^interface_exe::@6890427a1f51a3e7e1df$", + "^c_lib::@6890427a1f51a3e7e1df$", + "^c_exe::@6890427a1f51a3e7e1df$", + "^c_shared_lib::@6890427a1f51a3e7e1df$", + "^c_shared_exe::@6890427a1f51a3e7e1df$", + "^c_static_lib::@6890427a1f51a3e7e1df$", + "^c_static_exe::@6890427a1f51a3e7e1df$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/custom.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/custom.json new file mode 100644 index 0000000..0aeb727 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/custom.json @@ -0,0 +1,14 @@ +{ + "name": "Custom", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^custom$" + ], + "targetIds": [ + "^ALL_BUILD::@c11385ffed57b860da63$", + "^ZERO_CHECK::@c11385ffed57b860da63$", + "^custom_tgt::@c11385ffed57b860da63$", + "^custom_exe::@c11385ffed57b860da63$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/cxx.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/cxx.json new file mode 100644 index 0000000..296ae6c --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/cxx.json @@ -0,0 +1,18 @@ +{ + "name": "Cxx", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^cxx$" + ], + "targetIds": [ + "^ALL_BUILD::@a56b12a3f5c0529fb296$", + "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "^cxx_lib::@a56b12a3f5c0529fb296$", + "^cxx_exe::@a56b12a3f5c0529fb296$", + "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "^cxx_shared_exe::@a56b12a3f5c0529fb296$", + "^cxx_static_lib::@a56b12a3f5c0529fb296$", + "^cxx_static_exe::@a56b12a3f5c0529fb296$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/external.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/external.json new file mode 100644 index 0000000..3c9afff --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/external.json @@ -0,0 +1,13 @@ +{ + "name": "External", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^.*/Tests/RunCMake/FileAPIExternalSource$" + ], + "targetIds": [ + "^ALL_BUILD::@[0-9a-f]+$", + "^ZERO_CHECK::@[0-9a-f]+$", + "^generated_exe::@[0-9a-f]+$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/imported.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/imported.json new file mode 100644 index 0000000..dc40b72 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/imported.json @@ -0,0 +1,17 @@ +{ + "name": "Imported", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^imported$" + ], + "targetIds": [ + "^ALL_BUILD::@ba7eb709d0b48779c6c8$", + "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "^link_imported_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", + "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/object.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/object.json new file mode 100644 index 0000000..219f4eb --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/projects/object.json @@ -0,0 +1,16 @@ +{ + "name": "Object", + "parentName": "codemodel-v2", + "childNames": null, + "directorySources": [ + "^object$" + ], + "targetIds": [ + "^ALL_BUILD::@5ed5358f70faf8d8af7a$", + "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "^c_object_lib::@5ed5358f70faf8d8af7a$", + "^c_object_exe::@5ed5358f70faf8d8af7a$", + "^cxx_object_lib::@5ed5358f70faf8d8af7a$", + "^cxx_object_exe::@5ed5358f70faf8d8af7a$" + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_alias.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_alias.json new file mode 100644 index 0000000..eabf739 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_alias.json @@ -0,0 +1,83 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@53632cba2752272bb008$", + "directorySource": "^alias$", + "projectName": "Alias", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^alias$", + "source": "^alias$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@53632cba2752272bb008$", + "backtrace": null + }, + { + "id": "^c_alias_exe::@53632cba2752272bb008$", + "backtrace": null + }, + { + "id": "^cxx_alias_exe::@53632cba2752272bb008$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_custom.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_custom.json new file mode 100644 index 0000000..a5ff686 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_custom.json @@ -0,0 +1,79 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@c11385ffed57b860da63$", + "directorySource": "^custom$", + "projectName": "Custom", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^custom$", + "source": "^custom$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@c11385ffed57b860da63$", + "backtrace": null + }, + { + "id": "^custom_exe::@c11385ffed57b860da63$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_cxx.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_cxx.json new file mode 100644 index 0000000..92a7944 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_cxx.json @@ -0,0 +1,99 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_external.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_external.json new file mode 100644 index 0000000..017335c --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_external.json @@ -0,0 +1,79 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@[0-9a-f]+$", + "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "projectName": "External", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", + "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@[0-9a-f]+$", + "backtrace": null + }, + { + "id": "^generated_exe::@[0-9a-f]+$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_imported.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_imported.json new file mode 100644 index 0000000..2de5b15 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_imported.json @@ -0,0 +1,95 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_object.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_object.json new file mode 100644 index 0000000..9d8899a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_object.json @@ -0,0 +1,91 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^object$", + "source": "^object$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_top.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_top.json new file mode 100644 index 0000000..b4def78 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_top.json @@ -0,0 +1,179 @@ +{ + "name": "ALL_BUILD", + "id": "^ALL_BUILD::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ALL_BUILD\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^interface_exe::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_lib::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_exe::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_shared_exe::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_static_lib::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_static_exe::@6890427a1f51a3e7e1df$", + "backtrace": null + }, + { + "id": "^c_alias_exe::@53632cba2752272bb008$", + "backtrace": null + }, + { + "id": "^cxx_alias_exe::@53632cba2752272bb008$", + "backtrace": null + }, + { + "id": "^cxx_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", + "backtrace": null + }, + { + "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", + "backtrace": null + }, + { + "id": "^custom_exe::@c11385ffed57b860da63$", + "backtrace": null + }, + { + "id": "^generated_exe::@[0-9a-f]+$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_alias_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_alias_exe.json new file mode 100644 index 0000000..ac7c94d --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_alias_exe.json @@ -0,0 +1,107 @@ +{ + "name": "c_alias_exe", + "id": "^c_alias_exe::@53632cba2752272bb008$", + "directorySource": "^alias$", + "projectName": "Alias", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^c_alias_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_alias_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_alias_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^alias$", + "source": "^alias$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^c_lib::@6890427a1f51a3e7e1df$", + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 6, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@53632cba2752272bb008$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_exe.json new file mode 100644 index 0000000..7af74c4 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_exe.json @@ -0,0 +1,143 @@ +{ + "name": "c_exe", + "id": "^c_exe::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 6, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 6, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^c_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^c_lib::@6890427a1f51a3e7e1df$", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 7, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_lib.json new file mode 100644 index 0000000..0ca1962 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_lib.json @@ -0,0 +1,108 @@ +{ + "name": "c_lib", + "id": "^c_lib::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "STATIC_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 5, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 5, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib)?c_lib\\.(a|lib)$", + "artifacts": [ + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_lib\\.(a|lib)$", + "_dllExtra": false + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": null, + "archive": { + "lto": null + }, + "dependencies": [ + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_exe.json new file mode 100644 index 0000000..91951c3 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_exe.json @@ -0,0 +1,141 @@ +{ + "name": "c_object_exe", + "id": "^c_object_exe::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 6, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.c)?\\.o(bj)?$", + "isGenerated": true, + "sourceGroupName": "Object Libraries", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 7, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + }, + { + "name": "Object Libraries", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.c)?\\.o(bj)?$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 6, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^c_object_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_object_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_object_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^object$", + "source": "^object$", + "install": { + "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", + "destinations": [ + { + "path": "bin", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 13, + "command": "install", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + }, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_lib.json new file mode 100644 index 0000000..e3a20df --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_lib.json @@ -0,0 +1,82 @@ +{ + "name": "c_object_lib", + "id": "^c_object_lib::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "OBJECT_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 5, + "command": "add_library", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 5, + "command": "add_library", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": [ + { + "path": "^object/.*/empty(\\.c)?\\.o(bj)?$", + "_dllExtra": false + } + ], + "build": "^object$", + "source": "^object$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_exe.json new file mode 100644 index 0000000..0d4018a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_exe.json @@ -0,0 +1,143 @@ +{ + "name": "c_shared_exe", + "id": "^c_shared_exe::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^c_shared_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_shared_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_shared_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": { + "language": "C", + "lto": true, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 11, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_lib.json new file mode 100644 index 0000000..176a857 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_lib.json @@ -0,0 +1,123 @@ +{ + "name": "c_shared_lib", + "id": "^c_shared_lib::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "SHARED_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": [ + { + "define": "c_shared_lib_EXPORTS", + "backtrace": null + } + ], + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib|cyg)?c_shared_lib\\.(so|dylib|dll)$", + "artifacts": [ + { + "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?c_shared_lib\\.(so|dylib|dll)$", + "_dllExtra": false + }, + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_shared_lib\\.(dll\\.a|lib)$", + "_dllExtra": true + }, + { + "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?c_shared_lib\\.pdb$", + "_dllExtra": true + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": { + "language": "C", + "lto": true, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_exe.json new file mode 100644 index 0000000..5542277 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_exe.json @@ -0,0 +1,143 @@ +{ + "name": "c_static_exe", + "id": "^c_static_exe::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 14, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 14, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^c_static_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_static_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?c_static_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^c_static_lib::@6890427a1f51a3e7e1df$", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 15, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_lib.json new file mode 100644 index 0000000..4b63897 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_lib.json @@ -0,0 +1,108 @@ +{ + "name": "c_static_lib", + "id": "^c_static_lib::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "STATIC_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 13, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 13, + "command": "add_library", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib)?c_static_lib\\.(a|lib)$", + "artifacts": [ + { + "path": "^((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_static_lib\\.(a|lib)$", + "_dllExtra": false + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": null, + "archive": { + "lto": true + }, + "dependencies": [ + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_exe.json new file mode 100644 index 0000000..ab301e9 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_exe.json @@ -0,0 +1,107 @@ +{ + "name": "custom_exe", + "id": "^custom_exe::@c11385ffed57b860da63$", + "directorySource": "^custom$", + "projectName": "Custom", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": 4, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": 4, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^custom_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^custom/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?custom_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^custom/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?custom_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^custom$", + "source": "^custom$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^custom_tgt::@c11385ffed57b860da63$", + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": 5, + "command": "add_dependencies", + "hasParent": true + }, + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@c11385ffed57b860da63$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_tgt.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_tgt.json new file mode 100644 index 0000000..a7106fc --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_tgt.json @@ -0,0 +1,87 @@ +{ + "name": "custom_tgt", + "id": "^custom_tgt::@c11385ffed57b860da63$", + "directorySource": "^custom$", + "projectName": "Custom", + "type": "UTILITY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/custom_tgt$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": 3, + "command": "add_custom_target", + "hasParent": true + }, + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/(custom/)?CMakeFiles/([0-9a-f]+/)?custom_tgt\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/custom_tgt$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/(custom/)?CMakeFiles/([0-9a-f]+/)?custom_tgt\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": 3, + "command": "add_custom_target", + "hasParent": true + }, + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^custom$", + "source": "^custom$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@c11385ffed57b860da63$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_alias_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_alias_exe.json new file mode 100644 index 0000000..837f252 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_alias_exe.json @@ -0,0 +1,107 @@ +{ + "name": "cxx_alias_exe", + "id": "^cxx_alias_exe::@53632cba2752272bb008$", + "directorySource": "^alias$", + "projectName": "Alias", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 9, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 9, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^cxx_alias_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_alias_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^alias/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_alias_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^alias$", + "source": "^alias$", + "install": null, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^cxx_lib::@a56b12a3f5c0529fb296$", + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": 10, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@53632cba2752272bb008$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe.json new file mode 100644 index 0000000..7631837 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe.json @@ -0,0 +1,213 @@ +{ + "name": "cxx_exe", + "id": "^cxx_exe::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": [ + { + "fragment" : "TargetCompileOptions", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 17, + "command": "target_compile_options", + "hasParent": true + }, + { + "file" : "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": "bin", + "nameOnDisk": "^cxx_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": { + "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", + "destinations": [ + { + "path": "bin", + "backtrace": [ + { + "file": "^codemodel-v2\\.cmake$", + "line": 37, + "command": "install", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + }, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": [ + { + "fragment" : "TargetLinkOptions", + "role" : "flags", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 18, + "command": "target_link_options", + "hasParent": true + }, + { + "file" : "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "fragment" : ".*TargetLinkDir\\\"?$", + "role" : "libraryPath", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 19, + "command": "target_link_directories", + "hasParent": true + }, + { + "file" : "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "fragment" : ".*cxx_lib.*", + "role" : "libraries", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 6, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file" : "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + }, + "archive": null, + "dependencies": [ + { + "id": "^cxx_lib::@a56b12a3f5c0529fb296$", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 6, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_lib.json new file mode 100644 index 0000000..94ac081 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_lib.json @@ -0,0 +1,84 @@ +{ + "name": "cxx_lib", + "id": "^cxx_lib::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "STATIC_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 4, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 4, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib)?cxx_lib\\.(a|lib)$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_lib\\.(a|lib)$", + "_dllExtra": false + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": null, + "archive": { + "lto": null + }, + "dependencies": [ + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_exe.json new file mode 100644 index 0000000..a33370a --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_exe.json @@ -0,0 +1,141 @@ +{ + "name": "cxx_object_exe", + "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.cxx)?\\.o(bj)?$", + "isGenerated": true, + "sourceGroupName": "Object Libraries", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 11, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + }, + { + "name": "Object Libraries", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/.*/empty(\\.cxx)?\\.o(bj)?$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^cxx_object_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_object_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^object/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_object_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^object$", + "source": "^object$", + "install": { + "prefix": "^(/usr/local|[A-Za-z]:.*/codemodel-v2)$", + "destinations": [ + { + "path": "bin", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 13, + "command": "install", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + }, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", + "backtrace": null + }, + { + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_lib.json new file mode 100644 index 0000000..8e99f7d --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_lib.json @@ -0,0 +1,82 @@ +{ + "name": "cxx_object_lib", + "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "OBJECT_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": [ + { + "path": "^object/.*/empty(\\.cxx)?\\.o(bj)?$", + "_dllExtra": false + } + ], + "build": "^object$", + "source": "^object$", + "install": null, + "link": null, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_exe.json new file mode 100644 index 0000000..4421c8f --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_exe.json @@ -0,0 +1,107 @@ +{ + "name": "cxx_shared_exe", + "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 10, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^cxx_shared_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_shared_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_shared_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 11, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_lib.json new file mode 100644 index 0000000..171a4f5 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_lib.json @@ -0,0 +1,99 @@ +{ + "name": "cxx_shared_lib", + "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "SHARED_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": [ + { + "define": "cxx_shared_lib_EXPORTS", + "backtrace": null + } + ], + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 9, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib|cyg)?cxx_shared_lib\\.(so|dylib|dll)$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?cxx_shared_lib\\.(so|dylib|dll)$", + "_dllExtra": false + }, + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_shared_lib\\.(dll\\.a|lib)$", + "_dllExtra": true + }, + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib|cyg)?cxx_shared_lib\\.pdb$", + "_dllExtra": true + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_exe.json new file mode 100644 index 0000000..52c42de --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_exe.json @@ -0,0 +1,107 @@ +{ + "name": "cxx_static_exe", + "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 14, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 14, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^cxx_static_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_static_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?cxx_static_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 15, + "command": "target_link_libraries", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_lib.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_lib.json new file mode 100644 index 0000000..98298be --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_lib.json @@ -0,0 +1,84 @@ +{ + "name": "cxx_static_lib", + "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "STATIC_LIBRARY", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.cxx$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 13, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "CXX", + "sourcePaths": [ + "^empty\\.cxx$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": 13, + "command": "add_library", + "hasParent": true + }, + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^(lib)?cxx_static_lib\\.(a|lib)$", + "artifacts": [ + { + "path": "^cxx/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?cxx_static_lib\\.(a|lib)$", + "_dllExtra": false + } + ], + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": null, + "archive": { + "lto": null + }, + "dependencies": [ + { + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/generated_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/generated_exe.json new file mode 100644 index 0000000..d41bbb2 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/generated_exe.json @@ -0,0 +1,303 @@ +{ + "name": "generated_exe", + "id": "^generated_exe::@[0-9a-f]+$", + "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "projectName": "External", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$", + "isGenerated": true, + "sourceGroupName": "Generated Source Files", + "compileGroupLanguage": "CXX", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 6, + "command": "target_sources", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$" + ] + }, + { + "name": "Generated Source Files", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPIExternalSource/empty\\.c$" + ], + "includes": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", + "isSystem": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 10, + "command": "set_property", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "isSystem": true, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 11, + "command": "target_include_directories", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "defines": [ + { + "define": "EMPTY_C=1", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 9, + "command": "set_property", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "define": "SRC_DUMMY", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 9, + "command": "set_property", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "define": "GENERATED_EXE=1", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 12, + "command": "target_compile_definitions", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "define": "TGT_DUMMY", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 12, + "command": "target_compile_definitions", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "compileCommandFragments": [ + { + "fragment" : "SRC_COMPILE_OPTIONS_DUMMY", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 13, + "command": "set_source_files_properties", + "hasParent": true + }, + { + "file" : "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ] + }, + { + "language": "CXX", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/generated\\.cxx$" + ], + "includes": [ + { + "path": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "isSystem": true, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 11, + "command": "target_include_directories", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "defines": [ + { + "define": "GENERATED_EXE=1", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 12, + "command": "target_compile_definitions", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "define": "TGT_DUMMY", + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 12, + "command": "target_compile_definitions", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^generated_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?generated_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?generated_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", + "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "install": null, + "link": { + "language": "CXX", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@[0-9a-f]+$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_exe.json new file mode 100644 index 0000000..fe0524c --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_exe.json @@ -0,0 +1,152 @@ +{ + "name": "interface_exe", + "id": "^interface_exe::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^include_test\\.cmake$", + "line": 3, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^include_test\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": [ + { + "define": "interface_exe_EXPORTS", + "backtrace": null + } + ], + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^include_test\\.cmake$", + "line": 3, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^include_test\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^codemodel-v2\\.cmake$", + "line": null, + "command": null, + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": 3, + "command": "include", + "hasParent": true + }, + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^my_interface_exe\\.myexe$", + "artifacts": [ + { + "path": "^bin/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?my_interface_exe\\.myexe$", + "_dllExtra": false + }, + { + "path": "^lib/my_interface_exe\\.imp$", + "_aixExtra": true, + "_dllExtra": false + }, + { + "path": "^lib/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?my_interface_exe\\.(dll\\.a|lib)$", + "_dllExtra": true + }, + { + "path": "^bin/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?my_interface_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_exe.json new file mode 100644 index 0000000..312f4c5 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_exe.json @@ -0,0 +1,90 @@ +{ + "name": "link_imported_exe", + "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 5, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^link_imported_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_exe.json new file mode 100644 index 0000000..7d0e6df --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_exe.json @@ -0,0 +1,90 @@ +{ + "name": "link_imported_interface_exe", + "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 23, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 23, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^link_imported_interface_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_interface_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_interface_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_object_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_object_exe.json new file mode 100644 index 0000000..4aec524 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_object_exe.json @@ -0,0 +1,90 @@ +{ + "name": "link_imported_object_exe", + "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 18, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 18, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^link_imported_object_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_object_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_object_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_shared_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_shared_exe.json new file mode 100644 index 0000000..f5846ec --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_shared_exe.json @@ -0,0 +1,90 @@ +{ + "name": "link_imported_shared_exe", + "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 9, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 9, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^link_imported_shared_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_shared_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_shared_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_static_exe.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_static_exe.json new file mode 100644 index 0000000..29a1695 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_static_exe.json @@ -0,0 +1,90 @@ +{ + "name": "link_imported_static_exe", + "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "EXECUTABLE", + "isGeneratorProvided": null, + "sources": [ + { + "path": "^empty\\.c$", + "isGenerated": null, + "sourceGroupName": "Source Files", + "compileGroupLanguage": "C", + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 13, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "Source Files", + "sourcePaths": [ + "^empty\\.c$" + ] + } + ], + "compileGroups": [ + { + "language": "C", + "sourcePaths": [ + "^empty\\.c$" + ], + "includes": null, + "defines": null, + "compileCommandFragments": null + } + ], + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": 13, + "command": "add_executable", + "hasParent": true + }, + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": "^link_imported_static_exe(\\.exe)?$", + "artifacts": [ + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_static_exe(\\.exe)?$", + "_dllExtra": false + }, + { + "path": "^imported/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?link_imported_static_exe\\.pdb$", + "_dllExtra": true + } + ], + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": { + "language": "C", + "lto": null, + "commandFragments": null + }, + "archive": null, + "dependencies": [ + { + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "backtrace": null + } + ] +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_alias.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_alias.json new file mode 100644 index 0000000..941c172 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_alias.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@53632cba2752272bb008$", + "directorySource": "^alias$", + "projectName": "Alias", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/alias/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^alias/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^alias$", + "source": "^alias$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_custom.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_custom.json new file mode 100644 index 0000000..98c6dd9 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_custom.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@c11385ffed57b860da63$", + "directorySource": "^custom$", + "projectName": "Custom", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/custom/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^custom/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^custom$", + "source": "^custom$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_cxx.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_cxx.json new file mode 100644 index 0000000..b72ff82 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_cxx.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$", + "directorySource": "^cxx$", + "projectName": "Cxx", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/cxx/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^cxx/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^cxx$", + "source": "^cxx$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_external.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_external.json new file mode 100644 index 0000000..9e73806 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_external.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@[0-9a-f]+$", + "directorySource": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "projectName": "External", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^.*/Tests/RunCMake/FileAPIExternalSource/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^.*/Tests/RunCMake/FileAPI/FileAPIExternalBuild$", + "source": "^.*/Tests/RunCMake/FileAPIExternalSource$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_imported.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_imported.json new file mode 100644 index 0000000..7534c84 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_imported.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$", + "directorySource": "^imported$", + "projectName": "Imported", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/imported/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^imported/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^imported$", + "source": "^imported$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_object.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_object.json new file mode 100644 index 0000000..bcd7616 --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_object.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$", + "directorySource": "^object$", + "projectName": "Object", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/object/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^object/CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^object$", + "source": "^object$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_top.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_top.json new file mode 100644 index 0000000..b3030bd --- /dev/null +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_top.json @@ -0,0 +1,70 @@ +{ + "name": "ZERO_CHECK", + "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$", + "directorySource": "^\\.$", + "projectName": "codemodel-v2", + "type": "UTILITY", + "isGeneratorProvided": true, + "sources": [ + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK$", + "isGenerated": true, + "sourceGroupName": "", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + }, + { + "path": "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK\\.rule$", + "isGenerated": true, + "sourceGroupName": "CMake Rules", + "compileGroupLanguage": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ] + } + ], + "sourceGroups": [ + { + "name": "", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK$" + ] + }, + { + "name": "CMake Rules", + "sourcePaths": [ + "^.*/Tests/RunCMake/FileAPI/codemodel-v2-build/CMakeFiles/ZERO_CHECK\\.rule$" + ] + } + ], + "compileGroups": null, + "backtrace": [ + { + "file": "^CMakeLists\\.txt$", + "line": null, + "command": null, + "hasParent": false + } + ], + "folder": null, + "nameOnDisk": null, + "artifacts": null, + "build": "^\\.$", + "source": "^\\.$", + "install": null, + "link": null, + "archive": null, + "dependencies": null +} diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake new file mode 100644 index 0000000..c595b10 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake @@ -0,0 +1,5 @@ +set(log "${RunCMake_BINARY_DIR}/CustomCommandDepfile-build/CMakeFiles/impl-Debug.ninja") +file(READ "${log}" build_file) +if(NOT "${build_file}" MATCHES "depfile = test\\.d") + set(RunCMake_TEST_FAILED "Log file:\n ${log}\ndoes not have expected line: depfile = test.d") +endif() diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake new file mode 100644 index 0000000..1a42670 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake @@ -0,0 +1,9 @@ +add_custom_command( + OUTPUT main.copy.c + COMMAND "${CMAKE_COMMAND}" -E copy + "${CMAKE_CURRENT_SOURCE_DIR}/main.c" + main.copy.c + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + DEPFILE "test.d" + ) +add_custom_target(copy ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/main.copy.c") diff --git a/Tests/RunCMake/NinjaMultiConfig/DefaultBuildFileConfig.cmake b/Tests/RunCMake/NinjaMultiConfig/DefaultBuildFileConfig.cmake new file mode 100644 index 0000000..bb7b160 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/DefaultBuildFileConfig.cmake @@ -0,0 +1 @@ +# Intentionally empty diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 2344158..9058b11 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -81,7 +81,7 @@ endfunction() set(RunCMake_TEST_NO_CLEAN 1) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Simple-build) -set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all") +set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all") run_cmake_configure(Simple) unset(RunCMake_TEST_OPTIONS) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) @@ -113,7 +113,7 @@ run_ninja(Simple default-build-file-clean-minsizerel build.ninja clean:MinSizeRe run_ninja(Simple default-build-file-all build.ninja all) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SimpleDefaultBuildAlias-build) -set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release;-DCMAKE_NMC_DEFAULT_CONFIGS=all;-DCMAKE_NMC_CROSS_CONFIGS=all") +set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release;-DCMAKE_NMC_DEFAULT_CONFIGS=all;-DCMAKE_NMC_CROSS_CONFIGS=all") run_cmake_configure(SimpleDefaultBuildAlias) unset(RunCMake_TEST_OPTIONS) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) @@ -132,6 +132,13 @@ run_cmake_build(SimpleDefaultBuildAliasList all-configs "" all) run_ninja(SimpleDefaultBuildAliasList all-relwithdebinfo build.ninja all:RelWithDebInfo) run_ninja(SimpleDefaultBuildAliasList clean-configs build.ninja clean) +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SimpleDefaultBuildAliasListCross-build) +set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=RelWithDebInfo;-DCMAKE_NMC_DEFAULT_CONFIGS=all;-DCMAKE_NMC_CROSS_CONFIGS=Debug\\;Release") +run_cmake_configure(SimpleDefaultBuildAliasListCross) +unset(RunCMake_TEST_OPTIONS) +include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) +run_ninja(SimpleDefaultBuildAliasListCross target-configs build.ninja simpleexe) + unset(RunCMake_TEST_BINARY_DIR) set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release;-DCMAKE_NMC_CROSS_CONFIGS=Debug\\;Release\\;RelWithDebInfo") @@ -154,6 +161,10 @@ set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release;-DCMAKE run_cmake(InvalidDefaultConfigsNoCross) unset(RunCMake_TEST_OPTIONS) +set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release") +run_cmake(DefaultBuildFileConfig) +unset(RunCMake_TEST_OPTIONS) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SimpleNoCross-build) run_cmake_configure(SimpleNoCross) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) @@ -188,7 +199,7 @@ include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) run_cmake_build(Framework framework Debug all) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandGenerator-build) -set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_CROSS_CONFIGS=all") +set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all") run_cmake_configure(CustomCommandGenerator) unset(RunCMake_TEST_OPTIONS) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) @@ -220,6 +231,10 @@ run_ninja(CustomCommandsAndTargets release-postbuild build-Release.ninja SubdirP run_cmake_build(CustomCommandsAndTargets debug-targetpostbuild Debug TopTargetPostBuild) run_ninja(CustomCommandsAndTargets release-targetpostbuild build-Release.ninja SubdirTargetPostBuild) +unset(RunCMake_TEST_BINARY_DIR) + +run_cmake(CustomCommandDepfile) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PostfixAndLocation-build) set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release;-DCMAKE_NMC_CROSS_CONFIGS=all") run_cmake_configure(PostfixAndLocation) @@ -236,7 +251,7 @@ run_ninja(Clean release-notall build-Release.ninja exenotall) run_cmake_build(Clean release-clean Release clean) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AdditionalCleanFiles-build) -set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_CROSS_CONFIGS=all") +set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all") run_cmake_configure(AdditionalCleanFiles) unset(RunCMake_TEST_OPTIONS) run_cmake_build(AdditionalCleanFiles release-clean Release clean) diff --git a/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross-target-configs-ninja-check.cmake b/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross-target-configs-ninja-check.cmake new file mode 100644 index 0000000..b6c77ab --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross-target-configs-ninja-check.cmake @@ -0,0 +1,37 @@ +check_files("${RunCMake_TEST_BINARY_DIR}" + INCLUDE + ${GENERATED_FILES} + + ${TARGET_FILE_simpleexe_Debug} + ${TARGET_OBJECT_FILES_simpleexe_Debug} + + ${TARGET_FILE_simpleshared_Debug} + ${TARGET_LINKER_FILE_simpleshared_Debug} + ${TARGET_OBJECT_FILES_simpleshared_Debug} + + ${TARGET_OBJECT_FILES_simpleobj_Debug} + + ${TARGET_FILE_simpleexe_Release} + ${TARGET_OBJECT_FILES_simpleexe_Release} + + ${TARGET_FILE_simpleshared_Release} + ${TARGET_LINKER_FILE_simpleshared_Release} + ${TARGET_OBJECT_FILES_simpleshared_Release} + + ${TARGET_OBJECT_FILES_simpleobj_Release} + + EXCLUDE + ${TARGET_OBJECT_FILES_simplestatic_Debug} + + ${TARGET_OBJECT_FILES_simplestatic_Release} + + ${TARGET_OBJECT_FILES_simpleexe_MinSizeRel} + ${TARGET_OBJECT_FILES_simpleshared_MinSizeRel} + ${TARGET_OBJECT_FILES_simplestatic_MinSizeRel} + ${TARGET_OBJECT_FILES_simpleobj_MinSizeRel} + + ${TARGET_OBJECT_FILES_simpleexe_RelWithDebInfo} + ${TARGET_OBJECT_FILES_simpleshared_RelWithDebInfo} + ${TARGET_OBJECT_FILES_simplestatic_RelWithDebInfo} + ${TARGET_OBJECT_FILES_simpleobj_RelWithDebInfo} + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross.cmake b/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross.cmake new file mode 100644 index 0000000..2a5b708 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/SimpleDefaultBuildAliasListCross.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_SOURCE_DIR}/Simple.cmake") diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index f1dda54..342dbbc 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake @@ -78,6 +78,15 @@ endfunction() XcodeObjcxxFlags(XcodeObjcFlags) XcodeObjcxxFlags(XcodeObjcxxFlags) +function(XcodeRemoveExcessiveISystem) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeRemoveExcessiveISystem-build) + run_cmake(XcodeRemoveExcessiveISystem) + set(RunCMake_TEST_NO_CLEAN 1) + run_cmake_command(XcodeRemoveExcessiveISystem-build ${CMAKE_COMMAND} --build .) +endfunction() + +XcodeRemoveExcessiveISystem() + # Isolate device tests from host architecture selection. unset(ENV{CMAKE_OSX_ARCHITECTURES}) @@ -297,4 +306,16 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 8) xctest_lookup_test(tvOS appletvsimulator) endif() +if(XCODE_VERSION VERSION_GREATER_EQUAL 8) + function(XcodeRemoveExcessiveISystemSDK SDK) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeRemoveExcessiveISystemSDK-${SDK}-build) + set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=iOS") + run_cmake(XcodeRemoveExcessiveISystem) + set(RunCMake_TEST_NO_CLEAN 1) + run_cmake_command(XcodeRemoveExcessiveISystemSDK-${SDK}-build ${CMAKE_COMMAND} --build . -- -sdk ${SDK}) + endfunction() + + XcodeRemoveExcessiveISystemSDK(iphoneos) + XcodeRemoveExcessiveISystemSDK(iphonesimulator) +endif() # Please add macOS-only tests above before the device-specific tests. diff --git a/Tests/RunCMake/XcodeProject/XcodeRemoveExcessiveISystem.cmake b/Tests/RunCMake/XcodeProject/XcodeRemoveExcessiveISystem.cmake new file mode 100644 index 0000000..44052f0 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/XcodeRemoveExcessiveISystem.cmake @@ -0,0 +1,52 @@ +cmake_minimum_required (VERSION 3.14) + +if(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]") + set(USE_SWIFT 1) +else() + set(USE_SWIFT 0) +endif() + +if(IOS) + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED NO) + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + if(XCODE_VERSION VERSION_LESS 9) + set(USE_SWIFT 0) + endif() +endif () + +enable_language (CXX) + +if(USE_SWIFT) + enable_language (Swift) + if(NOT XCODE_VERSION VERSION_LESS 10.2) + set(CMAKE_Swift_LANGUAGE_VERSION 5.0) + elseif(NOT XCODE_VERSION VERSION_LESS 8.0) + set(CMAKE_Swift_LANGUAGE_VERSION 3.0) + endif() +endif() + +# Try to find ZLIB in the SDK rather than in system locations. +set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH FALSE) +set(CMAKE_FIND_USE_CMAKE_PATH FALSE) +set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH FALSE) +set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH FALSE) +list(REMOVE_ITEM CMAKE_SYSTEM_PREFIX_PATH /usr/local /usr / /usr/X11R6 /usr/pkg /opt /sw /opt/local) + +find_package(ZLIB REQUIRED) +add_library (framework_dependency STATIC) +target_sources (framework_dependency PRIVATE use_cmath.cpp) +target_link_libraries(framework_dependency INTERFACE ZLIB::ZLIB) + +add_library (framework_test SHARED use_cmath.cpp) +if(USE_SWIFT) + target_sources(framework_test PRIVATE foo.swift) +endif() +target_link_libraries (framework_test PRIVATE framework_dependency) + +set_target_properties (framework_test PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION A + MACOSX_FRAMEWORK_IDENTIFIER "framework.test" + VERSION "1.0" + SOVERSION 1.0 + ) diff --git a/Tests/RunCMake/XcodeProject/foo.swift b/Tests/RunCMake/XcodeProject/foo.swift new file mode 100644 index 0000000..fb2d3dc --- /dev/null +++ b/Tests/RunCMake/XcodeProject/foo.swift @@ -0,0 +1,2 @@ +func foo() { +} diff --git a/Tests/RunCMake/XcodeProject/use_cmath.cpp b/Tests/RunCMake/XcodeProject/use_cmath.cpp new file mode 100644 index 0000000..8a58af5 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/use_cmath.cpp @@ -0,0 +1,6 @@ +#include <cmath> + +bool foo(double arg) +{ + return std::isfinite(arg); +} diff --git a/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-build-stdout.txt b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-build-stdout.txt new file mode 100644 index 0000000..05c9a91 --- /dev/null +++ b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-build-stdout.txt @@ -0,0 +1 @@ +test2/test_folder_symlink diff --git a/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-rebuild-stdout.txt b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-rebuild-stdout.txt new file mode 100644 index 0000000..05c9a91 --- /dev/null +++ b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-rebuild-stdout.txt @@ -0,0 +1 @@ +test2/test_folder_symlink diff --git a/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-stdout.txt b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-stdout.txt new file mode 100644 index 0000000..1fbac01 --- /dev/null +++ b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-stdout.txt @@ -0,0 +1 @@ +.*Running CMake on GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake diff --git a/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake.cmake b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake.cmake new file mode 100644 index 0000000..da40534 --- /dev/null +++ b/Tests/RunCMake/file/GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake.cmake @@ -0,0 +1,10 @@ +cmake_policy(SET CMP0009 NEW) +message(STATUS "Running CMake on GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake") +file(GLOB_RECURSE + CONTENT_LIST + CONFIGURE_DEPENDS + LIST_DIRECTORIES false + RELATIVE "${CMAKE_CURRENT_BINARY_DIR}" + "${CMAKE_CURRENT_BINARY_DIR}/test2/*" + ) +add_custom_target(CONTENT_ECHO ALL ${CMAKE_COMMAND} -E echo ${CONTENT_LIST}) diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake index 8d1b981..f5461ad 100644 --- a/Tests/RunCMake/file/RunCMakeTest.cmake +++ b/Tests/RunCMake/file/RunCMakeTest.cmake @@ -111,7 +111,7 @@ else() set(tf_1 "${RunCMake_TEST_BINARY_DIR}/test/1.txt") file(WRITE "${tf_1}" "1") - message(STATUS "GLOB-RerunCMake: first configuration...") + message(STATUS "GLOB-CONFIGURE_DEPENDS-RerunCMake: first configuration...") run_cmake(GLOB-CONFIGURE_DEPENDS-RerunCMake) run_cmake_command(GLOB-CONFIGURE_DEPENDS-RerunCMake-build ${CMAKE_COMMAND} --build .) @@ -125,10 +125,25 @@ else() execute_process(COMMAND ${CMAKE_COMMAND} -E sleep ${fs_delay}) message(STATUS "GLOB-CONFIGURE_DEPENDS-RerunCMake: remove first test file...") - file(REMOVE "${RunCMake_TEST_BINARY_DIR}/test/1.txt") + file(REMOVE "${tf_1}") run_cmake_command(GLOB-CONFIGURE_DEPENDS-RerunCMake-rebuild_second ${CMAKE_COMMAND} --build .) run_cmake_command(GLOB-CONFIGURE_DEPENDS-RerunCMake-nowork ${CMAKE_COMMAND} --build .) + if(NOT WIN32 OR CYGWIN) + message(STATUS "GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake: link the first test directory into a new directory...") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}/test2") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${RunCMake_TEST_BINARY_DIR}/test" "${RunCMake_TEST_BINARY_DIR}/test2/test_folder_symlink") + + message(STATUS "GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake: first configuration...") + run_cmake(GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake) + run_cmake_command(GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-build ${CMAKE_COMMAND} --build .) + + message(STATUS "GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake: add another file in the linked directory...") + set(tf_3 "${RunCMake_TEST_BINARY_DIR}/test/3.txt") + file(WRITE "${tf_3}" "3") + run_cmake_command(GLOB-CONFIGURE_DEPENDS-CMP0009-RerunCMake-rebuild ${CMAKE_COMMAND} --build .) + endif() + unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_DEFAULT_stderr) diff --git a/Tests/RunCMake/install/TARGETS-Defaults-Cache-all-check.cmake b/Tests/RunCMake/install/TARGETS-Defaults-Cache-all-check.cmake index 57ad6e1..4a55cd6 100644 --- a/Tests/RunCMake/install/TARGETS-Defaults-Cache-all-check.cmake +++ b/Tests/RunCMake/install/TARGETS-Defaults-Cache-all-check.cmake @@ -8,8 +8,7 @@ if(WIN32) [[mybin/exe\.exe]] [[mybin/(lib)?lib1\.dll]] [[myinclude]] - [[myinclude/obj4\.h]] - [[myinclude/obj5\.h]] + [[myinclude/obj3\.h]] [[mylib]] [[mylib/(lib)?lib1\.(dll\.a|lib)]] [[mylib/(lib)?lib2\.(a|lib)]] @@ -24,8 +23,7 @@ elseif(CYGWIN) [[mybin/cyglib1\.dll]] [[mybin/exe\.exe]] [[myinclude]] - [[myinclude/obj4\.h]] - [[myinclude/obj5\.h]] + [[myinclude/obj3\.h]] [[mylib]] [[mylib/liblib1\.dll\.a]] [[mylib/liblib2\.a]] @@ -39,8 +37,7 @@ else() [[mybin]] [[mybin/exe]] [[myinclude]] - [[myinclude/obj4\.h]] - [[myinclude/obj5\.h]] + [[myinclude/obj3\.h]] [[mylib]] [[mylib/liblib1\.(dylib|so)]] [[mylib/liblib2\.a]] diff --git a/Tests/RunCMake/install/TARGETS-Defaults-Cache-stderr.txt b/Tests/RunCMake/install/TARGETS-Defaults-Cache-stderr.txt new file mode 100644 index 0000000..1939097 --- /dev/null +++ b/Tests/RunCMake/install/TARGETS-Defaults-Cache-stderr.txt @@ -0,0 +1,2 @@ +^INSTALL TARGETS - target lib3 has PRIVATE_HEADER files but no PRIVATE_HEADER DESTINATION\. +INSTALL TARGETS - target lib4 has PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION\.$ diff --git a/Tests/RunCMake/install/TARGETS-Defaults-Cache.cmake b/Tests/RunCMake/install/TARGETS-Defaults-Cache.cmake index bfd8c2c..58c5273 100644 --- a/Tests/RunCMake/install/TARGETS-Defaults-Cache.cmake +++ b/Tests/RunCMake/install/TARGETS-Defaults-Cache.cmake @@ -2,6 +2,7 @@ enable_language(C) add_executable(exe main.c) add_library(lib1 SHARED obj1.c) +set_property(TARGET lib1 PROPERTY PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/obj3.h) add_library(lib2 STATIC obj3.c) add_library(lib3 SHARED obj4.c) set_property(TARGET lib3 PROPERTY PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/obj4.h) diff --git a/Tests/RunCMake/install/TARGETS-Defaults-all-check.cmake b/Tests/RunCMake/install/TARGETS-Defaults-all-check.cmake index 15335b2..30f2266 100644 --- a/Tests/RunCMake/install/TARGETS-Defaults-all-check.cmake +++ b/Tests/RunCMake/install/TARGETS-Defaults-all-check.cmake @@ -6,8 +6,7 @@ if(WIN32) [[include]] [[include/obj1\.h]] [[include/obj2\.h]] - [[include/obj4\.h]] - [[include/obj5\.h]] + [[include/obj3\.h]] [[lib]] [[lib/(lib)?lib1\.(dll\.a|lib)]] [[lib/(lib)?lib2\.(a|lib)]] @@ -24,8 +23,7 @@ elseif(CYGWIN) [[include]] [[include/obj1\.h]] [[include/obj2\.h]] - [[include/obj4\.h]] - [[include/obj5\.h]] + [[include/obj3\.h]] [[lib]] [[lib/liblib1\.dll\.a]] [[lib/liblib2\.a]] @@ -41,8 +39,7 @@ else() [[include]] [[include/obj1\.h]] [[include/obj2\.h]] - [[include/obj4\.h]] - [[include/obj5\.h]] + [[include/obj3\.h]] [[lib]] [[lib/liblib1\.(dylib|so)]] [[lib/liblib2\.a]] diff --git a/Tests/RunCMake/install/TARGETS-Defaults-stderr.txt b/Tests/RunCMake/install/TARGETS-Defaults-stderr.txt new file mode 100644 index 0000000..1939097 --- /dev/null +++ b/Tests/RunCMake/install/TARGETS-Defaults-stderr.txt @@ -0,0 +1,2 @@ +^INSTALL TARGETS - target lib3 has PRIVATE_HEADER files but no PRIVATE_HEADER DESTINATION\. +INSTALL TARGETS - target lib4 has PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION\.$ diff --git a/Tests/RunCMake/install/TARGETS-Defaults.cmake b/Tests/RunCMake/install/TARGETS-Defaults.cmake index 324aa11..a580657 100644 --- a/Tests/RunCMake/install/TARGETS-Defaults.cmake +++ b/Tests/RunCMake/install/TARGETS-Defaults.cmake @@ -2,6 +2,7 @@ enable_language(C) add_executable(exe main.c) add_library(lib1 SHARED obj1.c) +set_property(TARGET lib1 PROPERTY PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/obj3.h) add_library(lib2 STATIC obj3.c) add_library(lib3 SHARED obj4.c) set_property(TARGET lib3 PROPERTY PRIVATE_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/obj4.h) diff --git a/Utilities/Release/win32_release.cmake b/Utilities/Release/win32_release.cmake index 14e5cba..993db6e 100644 --- a/Utilities/Release/win32_release.cmake +++ b/Utilities/Release/win32_release.cmake @@ -34,6 +34,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=${qt_win_libs} CMAKE_PREFIX_PATH:STRING=${qt_prefix} CMake_TEST_Qt4:BOOL=OFF CMake_TEST_Qt5:BOOL=OFF +PYTHON_EXECUTABLE:FILEPATH=C:/Python/3.8-64/python.exe ") set(ppflags "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000") set(CFLAGS "${ppflags}") diff --git a/Utilities/Release/win64_release.cmake b/Utilities/Release/win64_release.cmake index 149d378..3042889 100644 --- a/Utilities/Release/win64_release.cmake +++ b/Utilities/Release/win64_release.cmake @@ -34,6 +34,7 @@ CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=${qt_win_libs} CMAKE_PREFIX_PATH:STRING=${qt_prefix} CMake_TEST_Qt4:BOOL=OFF CMake_TEST_Qt5:BOOL=OFF +PYTHON_EXECUTABLE:FILEPATH=C:/Python/3.8-64/python.exe ") set(ppflags "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000") set(CFLAGS "${ppflags}") diff --git a/Utilities/cmlibarchive/libarchive/archive_string.c b/Utilities/cmlibarchive/libarchive/archive_string.c index 554533e..85594cc 100644 --- a/Utilities/cmlibarchive/libarchive/archive_string.c +++ b/Utilities/cmlibarchive/libarchive/archive_string.c @@ -735,7 +735,8 @@ archive_string_append_from_wcs_in_codepage(struct archive_string *as, else dp = &defchar_used; count = WideCharToMultiByte(to_cp, 0, ws, wslen, - as->s + as->length, (int)as->buffer_length-1, NULL, dp); + as->s + as->length, + (int)as->buffer_length - as->length - 1, NULL, dp); if (count == 0 && GetLastError() == ERROR_INSUFFICIENT_BUFFER) { /* Expand the MBS buffer and retry. */ @@ -1512,8 +1513,10 @@ get_current_codepage(void) p = strrchr(locale, '.'); if (p == NULL) return (GetACP()); + if (strcmp(p+1, "utf8") == 0) + return CP_UTF8; cp = my_atoi(p+1); - if (cp <= 0) + if ((int)cp <= 0) return (GetACP()); return (cp); } |