Merge c798e39a4f96f5a985126cc3fab4738b6412cfc1 into e93da23920
				
					
				
			Closes #1836 PiperOrigin-RevId: 215461025
This commit is contained in:
		@@ -145,6 +145,20 @@ if (gmock_build_tests)
 | 
			
		||||
  # 'make test' or ctest.
 | 
			
		||||
  enable_testing()
 | 
			
		||||
 | 
			
		||||
  if (WIN32)
 | 
			
		||||
    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/RunTest.ps1"
 | 
			
		||||
         CONTENT
 | 
			
		||||
"$project_bin = \"${CMAKE_BINARY_DIR}/bin/$<CONFIG>\"
 | 
			
		||||
$env:Path = \"$project_bin;$env:Path\"
 | 
			
		||||
& $args")
 | 
			
		||||
  elseif (MINGW)
 | 
			
		||||
    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/RunTest.ps1"
 | 
			
		||||
         CONTENT
 | 
			
		||||
"$project_bin = (cygpath --windows ${CMAKE_BINARY_DIR}/bin)
 | 
			
		||||
$env:Path = \"$project_bin;$env:Path\"
 | 
			
		||||
& $args")
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  ############################################################
 | 
			
		||||
  # C++ tests built with standard compiler flags.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -187,6 +187,20 @@ if (gtest_build_tests)
 | 
			
		||||
  # 'make test' or ctest.
 | 
			
		||||
  enable_testing()
 | 
			
		||||
 | 
			
		||||
  if (WIN32)
 | 
			
		||||
    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/RunTest.ps1"
 | 
			
		||||
         CONTENT
 | 
			
		||||
"$project_bin = \"${CMAKE_BINARY_DIR}/bin/$<CONFIG>\"
 | 
			
		||||
$env:Path = \"$project_bin;$env:Path\"
 | 
			
		||||
& $args")
 | 
			
		||||
  elseif (MINGW)
 | 
			
		||||
    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/RunTest.ps1"
 | 
			
		||||
         CONTENT
 | 
			
		||||
"$project_bin = (cygpath --windows ${CMAKE_BINARY_DIR}/bin)
 | 
			
		||||
$env:Path = \"$project_bin;$env:Path\"
 | 
			
		||||
& $args")
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  ############################################################
 | 
			
		||||
  # C++ tests built with standard compiler flags.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -167,6 +167,22 @@ function(cxx_library_with_type name type cxx_flags)
 | 
			
		||||
  set_target_properties(${name}
 | 
			
		||||
    PROPERTIES
 | 
			
		||||
    DEBUG_POSTFIX "d")
 | 
			
		||||
  # Set the output directory for build artifacts
 | 
			
		||||
  set_target_properties(${name}
 | 
			
		||||
    PROPERTIES
 | 
			
		||||
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
 | 
			
		||||
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
 | 
			
		||||
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
 | 
			
		||||
    PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
 | 
			
		||||
  # make PDBs match library name
 | 
			
		||||
  get_target_property(pdb_debug_postfix ${name} DEBUG_POSTFIX)
 | 
			
		||||
  set_target_properties(${name}
 | 
			
		||||
    PROPERTIES
 | 
			
		||||
    PDB_NAME "${name}"
 | 
			
		||||
    PDB_NAME_DEBUG "${name}${pdb_debug_postfix}"
 | 
			
		||||
    COMPILE_PDB_NAME "${name}"
 | 
			
		||||
    COMPILE_PDB_NAME_DEBUG "${name}${pdb_debug_postfix}")
 | 
			
		||||
 | 
			
		||||
  if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED")
 | 
			
		||||
    set_target_properties(${name}
 | 
			
		||||
      PROPERTIES
 | 
			
		||||
@@ -244,7 +260,13 @@ find_package(PythonInterp)
 | 
			
		||||
# from the given source files with the given compiler flags.
 | 
			
		||||
function(cxx_test_with_flags name cxx_flags libs)
 | 
			
		||||
  cxx_executable_with_flags(${name} "${cxx_flags}" "${libs}" ${ARGN})
 | 
			
		||||
  add_test(NAME ${name} COMMAND ${name})
 | 
			
		||||
  if (WIN32 OR MINGW)
 | 
			
		||||
    add_test(NAME ${name}
 | 
			
		||||
      COMMAND "powershell" "-Command" "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/RunTest.ps1" "$<TARGET_FILE:${name}>")
 | 
			
		||||
  else()
 | 
			
		||||
    add_test(NAME ${name}
 | 
			
		||||
      COMMAND "$<TARGET_FILE:${name}>")
 | 
			
		||||
  endif()
 | 
			
		||||
endfunction()
 | 
			
		||||
 | 
			
		||||
# cxx_test(name libs srcs...)
 | 
			
		||||
@@ -263,33 +285,51 @@ endfunction()
 | 
			
		||||
# test/name.py.  It does nothing if Python is not installed.
 | 
			
		||||
function(py_test name)
 | 
			
		||||
  if (PYTHONINTERP_FOUND)
 | 
			
		||||
    if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
 | 
			
		||||
    if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 3.1)
 | 
			
		||||
      if (CMAKE_CONFIGURATION_TYPES)
 | 
			
		||||
	# Multi-configuration build generators as for Visual Studio save
 | 
			
		||||
	# output in a subdirectory of CMAKE_CURRENT_BINARY_DIR (Debug,
 | 
			
		||||
	# Release etc.), so we have to provide it here.
 | 
			
		||||
        add_test(
 | 
			
		||||
          NAME ${name}
 | 
			
		||||
          COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
        # Multi-configuration build generators as for Visual Studio save
 | 
			
		||||
        # output in a subdirectory of CMAKE_CURRENT_BINARY_DIR (Debug,
 | 
			
		||||
        # Release etc.), so we have to provide it here.
 | 
			
		||||
        if (WIN32 OR MINGW)
 | 
			
		||||
          add_test(NAME ${name}
 | 
			
		||||
            COMMAND powershell -Command ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/RunTest.ps1
 | 
			
		||||
              ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
              --build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG> ${ARGN})
 | 
			
		||||
        else()
 | 
			
		||||
          add_test(NAME ${name}
 | 
			
		||||
            COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
              --build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG> ${ARGN})
 | 
			
		||||
        endif()
 | 
			
		||||
      else (CMAKE_CONFIGURATION_TYPES)
 | 
			
		||||
	# Single-configuration build generators like Makefile generators
 | 
			
		||||
	# don't have subdirs below CMAKE_CURRENT_BINARY_DIR.
 | 
			
		||||
        add_test(
 | 
			
		||||
          NAME ${name}
 | 
			
		||||
          COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
        # Single-configuration build generators like Makefile generators
 | 
			
		||||
        # don't have subdirs below CMAKE_CURRENT_BINARY_DIR.
 | 
			
		||||
        if (WIN32 OR MINGW)
 | 
			
		||||
          add_test(NAME ${name}
 | 
			
		||||
            COMMAND powershell -Command ${CMAKE_CURRENT_BINARY_DIR}/RunTest.ps1
 | 
			
		||||
              ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
              --build_dir=${CMAKE_CURRENT_BINARY_DIR} ${ARGN})
 | 
			
		||||
        else()
 | 
			
		||||
          add_test(NAME ${name}
 | 
			
		||||
            COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
              --build_dir=${CMAKE_CURRENT_BINARY_DIR} ${ARGN})
 | 
			
		||||
        endif()
 | 
			
		||||
      endif (CMAKE_CONFIGURATION_TYPES)
 | 
			
		||||
    else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
 | 
			
		||||
    else()
 | 
			
		||||
      # ${CMAKE_CURRENT_BINARY_DIR} is known at configuration time, so we can
 | 
			
		||||
      # directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known
 | 
			
		||||
      # only at ctest runtime (by calling ctest -c <Configuration>), so
 | 
			
		||||
      # we have to escape $ to delay variable substitution here.
 | 
			
		||||
      add_test(
 | 
			
		||||
        ${name}
 | 
			
		||||
        ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
          --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE} ${ARGN})
 | 
			
		||||
    endif (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
 | 
			
		||||
      if (WIN32 OR MINGW)
 | 
			
		||||
        add_test(NAME ${name}
 | 
			
		||||
          COMMAND powershell -Command ${CMAKE_CURRENT_BINARY_DIR}/RunTest.ps1
 | 
			
		||||
            ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
            --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE} ${ARGN})
 | 
			
		||||
      else()
 | 
			
		||||
        add_test(NAME ${name}
 | 
			
		||||
          COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
 | 
			
		||||
            --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE} ${ARGN})
 | 
			
		||||
      endif()
 | 
			
		||||
    endif()
 | 
			
		||||
  endif(PYTHONINTERP_FOUND)
 | 
			
		||||
endfunction()
 | 
			
		||||
 | 
			
		||||
@@ -306,6 +346,18 @@ function(install_project)
 | 
			
		||||
      RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
 | 
			
		||||
      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
 | 
			
		||||
      LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 | 
			
		||||
    if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
 | 
			
		||||
      # Install PDBs
 | 
			
		||||
      foreach(t ${ARGN})
 | 
			
		||||
        get_target_property(t_pdb_name ${t} COMPILE_PDB_NAME)
 | 
			
		||||
        get_target_property(t_pdb_name_debug ${t} COMPILE_PDB_NAME_DEBUG)
 | 
			
		||||
        get_target_property(t_pdb_output_directory ${t} PDB_OUTPUT_DIRECTORY)
 | 
			
		||||
        install(FILES
 | 
			
		||||
          "${t_pdb_output_directory}/\${CMAKE_INSTALL_CONFIG_NAME}/$<IF:$<CONFIG:Debug>,${t_pdb_name_debug},${t_pdb_name}>.pdb"
 | 
			
		||||
          DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
			
		||||
          OPTIONAL)
 | 
			
		||||
      endforeach()
 | 
			
		||||
    endif()
 | 
			
		||||
    # Configure and install pkgconfig files.
 | 
			
		||||
    foreach(t ${ARGN})
 | 
			
		||||
      set(configured_pc "${generated_dir}/${t}.pc")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user