diff --git a/NuGet.config b/NuGet.config index 7071908f1abac..4ea7e326f205a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,7 @@ + diff --git a/eng/helixcorefxtests.proj b/eng/helixcorefxtests.proj index b335ab42a4297..f25f1cc0e19e9 100644 --- a/eng/helixcorefxtests.proj +++ b/eng/helixcorefxtests.proj @@ -85,6 +85,7 @@ TODO: ProjectDir, RootBinDir, TestWorkingDir, and TargetsWindows are global properties set in dir.props, remove the property assignment here when we port to arcade. --> $(MSBuildThisFileDirectory)..\ + $(ProjectDir)\src\coreclr\ $(ProjectDir)bin\ $(RootBinDir)tests\$(__BuildOS).$(__BuildArch).$(__BuildType)\ true @@ -149,7 +150,7 @@ - <_ProjectsToBuild Include="..\tests\testenvironment.proj"> + <_ProjectsToBuild Include="$(ProjectDir)tests\testenvironment.proj"> Scenario=$(Scenario);TestEnvFileName=$(TestEnvFilePath);TargetsWindows=$(TargetsWindows) diff --git a/eng/pipelines/coreclr/templates/build-test-job.yml b/eng/pipelines/coreclr/templates/build-test-job.yml index 880ee2935feb8..851673b48cd34 100644 --- a/eng/pipelines/coreclr/templates/build-test-job.yml +++ b/eng/pipelines/coreclr/templates/build-test-job.yml @@ -67,7 +67,7 @@ jobs: displayName: Install native dependencies - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: # Necessary to install correct cmake version - - script: $(coreClrRepoRootDir)eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force + - script: $(Build.SourcesDirectory)\eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force displayName: Install native dependencies diff --git a/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml b/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml index b10490379eae5..a44820f01828e 100644 --- a/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml +++ b/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml @@ -40,14 +40,14 @@ jobs: value: $(osGroup).$(hostArchType)_$(archType).$(buildConfigUpper) - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - name: binDirectory - value: $(Build.SourcesDirectory)/bin + value: $(coreClrRepoRoot)/bin - name: productDirectory - value: $(Build.SourcesDirectory)/bin/Product + value: $(binDirectory)/Product - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - name: binDirectory - value: $(Build.SourcesDirectory)\bin + value: $(coreClrRepoRoot)\bin - name: productDirectory - value: $(Build.SourcesDirectory)\bin\Product + value: $(binDirectory\Product # Test job depends on the corresponding build job dependsOn: ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} @@ -83,12 +83,8 @@ jobs: # Populate Core_Root - - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - - script: ./build-test.sh $(buildConfig) $(archType) $(crossArg) generatelayoutonly - displayName: Populate Core_Root - - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - - script: build-test.cmd $(buildConfig) $(archType) generateLayoutOnly - displayName: Populate Core_Root + - script: $(coreClrRepoRootDir)build-test$(scriptExt) $(buildConfig) $(archType) $(crossArg) generatelayoutonly + displayName: Populate Core_Root # Create baseline output on the host (x64) machine @@ -96,7 +92,7 @@ jobs: displayName: Create cross-platform crossgen baseline inputs: scriptSource: 'filePath' - scriptPath: $(Build.SourcesDirectory)/tests/scripts/crossgen_comparison.py + scriptPath: $(coreClrRepoRoot)/tests/scripts/crossgen_comparison.py ${{ if ne(parameters.osGroup, 'Windows_NT') }}: arguments: crossgen_framework @@ -126,7 +122,7 @@ jobs: Creator: $(Creator) WorkItemTimeout: 1:00 # 1 hour WorkItemDirectory: '$(binDirectory)' - CorrelationPayloadDirectory: '$(Build.SourcesDirectory)/tests/scripts' + CorrelationPayloadDirectory: '$(coreClrRepoRoot)/tests/scripts' ${{ if ne(parameters.osName, 'Windows_NT') }}: WorkItemCommand: chmod +x $HELIX_WORKITEM_PAYLOAD/Product/$(targetFlavor)/crossgen; diff --git a/eng/pipelines/coreclr/templates/format-job.yml b/eng/pipelines/coreclr/templates/format-job.yml index 30e90348dd5ad..d7bd4cbbe4de1 100644 --- a/eng/pipelines/coreclr/templates/format-job.yml +++ b/eng/pipelines/coreclr/templates/format-job.yml @@ -10,7 +10,7 @@ parameters: ### Format job jobs: -- template: xplat-job.yml +- template: xplat-pipeline-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} archType: ${{ parameters.archType }} @@ -32,12 +32,12 @@ jobs: displayName: Run tests/scripts/format.py inputs: scriptSource: 'filePath' - scriptPath: $(Build.SourcesDirectory)/tests/scripts/format.py - arguments: '-c $(Build.SourcesDirectory) -o $(osGroup) -a $(archType)' + scriptPath: $(coreClrRepoRoot)/tests/scripts/format.py + arguments: '-c $(coreClrRepoRoot) -o $(osGroup) -a $(archType)' - task: PublishBuildArtifacts@1 displayName: Publish format.patch inputs: - PathtoPublish: '$(Build.SourcesDirectory)/format.patch' + PathtoPublish: '$(coreClrRepoRoot)/format.patch' ArtifactName: format.$(osGroup).$(archType).patch continueOnError: true condition: failed() diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index f0d598d718049..a6b0998105778 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -55,9 +55,9 @@ jobs: # Create Core_Root - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - - script: ./build-test.sh ${{ parameters.buildConfig }} ${{ parameters.archType }} generatelayoutonly + - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.buildConfig }} ${{ parameters.archType }} generatelayoutonly displayName: Create Core_Root - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: # TODO: add generatelayoutonly to build-test.cmd. - - script: build-test.cmd ${{ parameters.buildConfig }} ${{ parameters.archType }} skipmanaged skipnative + - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.buildConfig }} ${{ parameters.archType }} skipmanaged skipnative displayName: Create Core_Root \ No newline at end of file diff --git a/eng/pipelines/coreclr/templates/run-test-job.yml b/eng/pipelines/coreclr/templates/run-test-job.yml index ddac9b17b6181..3b26e220a8a58 100644 --- a/eng/pipelines/coreclr/templates/run-test-job.yml +++ b/eng/pipelines/coreclr/templates/run-test-job.yml @@ -250,7 +250,7 @@ jobs: # Choose which tests to send to Helix: CoreFX or CoreCLR. ${{ if eq(parameters.corefxTests, true) }}: - helixProjectArguments: '$(coreClrRepoRoot)/eng/helixcorefxtests.proj' + helixProjectArguments: '$(Build.SourcesDirectory)/eng/helixcorefxtests.proj' ${{ if ne(parameters.corefxTests, true) }}: helixProjectArguments: '$(coreClrRepoRoot)/tests/src/helixpublishwitharcade.proj' diff --git a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml index ffc806edf8714..ac96e979781ae 100644 --- a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml +++ b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml @@ -80,9 +80,9 @@ jobs: value: '/' - name: coreClrRepoRoot - value: '$(Build.SourcesDirectory)/src/coreclr + value: '$(Build.SourcesDirectory)/src/coreclr' - - ${{ if not(startsWith(variables['Build.DefinitionName'], 'runtime')) }}:' + - ${{ if not(startsWith(variables['Build.DefinitionName'], 'runtime')) }}: - name: coreClrRepoRoot value: '$(Build.SourcesDirectory)' diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 9f178bfa84fad..ecf417a10f974 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -537,7 +537,7 @@ build_native_projects() extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1" fi - nextCommand="\"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs" + nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs" echo "Invoking $nextCommand" eval $nextCommand diff --git a/src/coreclr/build.sh b/src/coreclr/build.sh index d2d3dad1f5ee4..f042e9ccc2c4b 100755 --- a/src/coreclr/build.sh +++ b/src/coreclr/build.sh @@ -235,7 +235,7 @@ build_native() __versionSourceFile="$intermediatesForBuild/version.c" if [ $__SkipGenerateVersion == 0 ]; then pwd - "$__RepoRootDir/eng/common/msbuild.sh" $__ArcadeScriptArgs $__ProjectRoot/eng/empty.csproj \ + "$__RepoRootDir/eng/common/msbuild.sh" $__ArcadeScriptArgs $__RepoRootDir/eng/empty.csproj \ /p:NativeVersionFile=$__versionSourceFile \ /t:GenerateNativeVersionFile /restore \ $__CommonMSBuildArgs $__UnprocessedBuildArgs @@ -273,8 +273,9 @@ build_native() extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1" fi - echo "Invoking \"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs" - source "$scriptDir/gen-buildsys.sh" "$__ProjectRoot" "$intermediatesForBuild" $platformArch $__BuildType $generator $scan_build "$extraCmakeArguments" "$__cmakeargs" + nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs" + echo "Invoking $nextCommand" + eval $nextCommand if [ $? != 0 ]; then echo "${__ErrMsgPrefix}Failed to generate $message build project!" @@ -1063,7 +1064,7 @@ __MsbuildDebugLogsDir="$__LogsDir/MsbuildDebugLogs" __BinDir="$__RootBinDir/Product/$__BuildOS.$__BuildArch.$__BuildType" __PackagesBinDir="$__BinDir/.nuget" export __IntermediatesDir="$__RootBinDir/obj/$__BuildOS.$__BuildArch.$__BuildType" -export __ArtifactsIntermediatesDir="$__ProjectDir/artifacts/obj" +export __ArtifactsIntermediatesDir="$__RepoRootDir/artifacts/obj" __isMSBuildOnNETCoreSupported=0 __CrossComponentBinDir="$__BinDir" diff --git a/src/coreclr/tests/scripts/format.py b/src/coreclr/tests/scripts/format.py index a20368a5905d6..bf34116831196 100644 --- a/src/coreclr/tests/scripts/format.py +++ b/src/coreclr/tests/scripts/format.py @@ -16,10 +16,37 @@ import os import sys import tarfile +import tempfile import zipfile import subprocess import shutil +class ChangeDir: + def __init__(self, dir): + self.dir = dir + self.cwd = None + + def __enter__(self): + self.cwd = os.getcwd() + os.chdir(self.dir) + + def __exit__(self, exc_type, exc_val, exc_tb): + os.chdir(self.cwd) + +class TempDir: + def __init__(self, path=None): + self.dir = tempfile.mkdtemp() if path is None else path + self.cwd = None + + def __enter__(self): + self.cwd = os.getcwd() + os.chdir(self.dir) + + return self.dir + + def __exit__(self, exc_type, exc_val, exc_tb): + os.chdir(self.cwd) + # Version specific imports if sys.version_info.major < 3: @@ -63,7 +90,8 @@ def main(argv): print('Bad path to coreclr') return -1 - coreclr = args.coreclr + coreclr = args.coreclr.replace('/', os.sep) + platform = args.os arch = args.arch @@ -86,109 +114,116 @@ def main(argv): bootstrapUrl = "https://raw.githubusercontent.com/dotnet/jitutils/master/" + bootstrapFilename - bootstrapPath = os.path.join(coreclr, bootstrapFilename) - urlretrieve(bootstrapUrl, bootstrapPath) - - if not os.path.isfile(bootstrapPath): - print("Did not download bootstrap!") - return -1 + with TempDir() as temp_location: + bootstrapPath = os.path.join(temp_location, bootstrapFilename) - # On *nix platforms, we need to make the bootstrap file executable + assert len(os.listdir(os.path.dirname(bootstrapPath))) == 0 - if platform == 'Linux' or platform == 'OSX': - print("Making bootstrap executable") - os.chmod(bootstrapPath, 0o751) + urlretrieve(bootstrapUrl, bootstrapPath) - print(bootstrapPath) + if not os.path.isfile(bootstrapPath): + print("Did not download bootstrap!") + return -1 - # Run bootstrap - if platform == 'Linux' or platform == 'OSX': - print("Running bootstrap") - proc = subprocess.Popen(['bash', bootstrapPath], env=my_env) - output,error = proc.communicate() - elif platform == 'Windows_NT': - proc = subprocess.Popen([bootstrapPath], env=my_env) - output,error = proc.communicate() + # On *nix platforms, we need to make the bootstrap file executable - # Run jit-format + if platform == 'Linux' or platform == 'OSX': + print("Making bootstrap executable") + os.chmod(bootstrapPath, 0o751) - returncode = 0 - jitutilsBin = os.path.join(coreclr, "jitutils", "bin") - my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"] - current_dir = os.getcwd() + print(bootstrapPath) - if not os.path.isdir(jitutilsBin): - print("Jitutils not built!") - return -1 - - jitformat = jitutilsBin - - if platform == 'Linux' or platform == 'OSX': - jitformat = os.path.join(jitformat, "jit-format") - elif platform == 'Windows_NT': - jitformat = os.path.join(jitformat,"jit-format.bat") - errorMessage = "" - - builds = ["Checked", "Debug", "Release"] - projects = ["dll", "standalone", "crossgen"] - - for build in builds: - for project in projects: - proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) + # Run bootstrap + if platform == 'Linux' or platform == 'OSX': + print("Running bootstrap") + proc = subprocess.Popen(['bash', bootstrapPath], env=my_env) + output,error = proc.communicate() + elif platform == 'Windows_NT': + proc = subprocess.Popen([bootstrapPath], env=my_env) output,error = proc.communicate() - errorcode = proc.returncode - - if errorcode != 0: - errorMessage += "\tjit-format -a " + arch + " -b " + build + " -o " + platform - errorMessage += " -c --verbose --fix --projects " + project +"\n" - returncode = errorcode - - # Fix mode doesn't return an error, so we have to run the build, then run with - # --fix to generate the patch. This means that it is likely only the first run - # of jit-format will return a formatting failure. - if errorcode == -2: - # If errorcode was -2, no need to run clang-tidy again - proc = subprocess.Popen([jitformat, "--fix", "--untidy", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) - output,error = proc.communicate() - else: - # Otherwise, must run both - proc = subprocess.Popen([jitformat, "--fix", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) - output,error = proc.communicate() - - os.chdir(current_dir) - - if returncode != 0: - # Create a patch file - patchFile = open("format.patch", "w") - proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile) - output,error = proc.communicate() - if os.path.isdir(jitUtilsPath): - print("Deleting " + jitUtilsPath) - shutil.rmtree(jitUtilsPath, onerror=del_rw) + # Run jit-format + + returncode = 0 + jitutilsBin = os.path.join(os.path.dirname(bootstrapPath), "jitutils", "bin") + my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"] + current_dir = os.getcwd() + + if not os.path.isdir(jitutilsBin): + print("Jitutils not built!") + return -1 + + jitformat = jitutilsBin + + if platform == 'Linux' or platform == 'OSX': + jitformat = os.path.join(jitformat, "jit-format") + elif platform == 'Windows_NT': + jitformat = os.path.join(jitformat,"jit-format.bat") + errorMessage = "" + + builds = ["Checked", "Debug", "Release"] + projects = ["dll", "standalone", "crossgen"] + + for build in builds: + for project in projects: + proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) + output,error = proc.communicate() + errorcode = proc.returncode + + if errorcode != 0: + errorMessage += "\tjit-format -a " + arch + " -b " + build + " -o " + platform + errorMessage += " -c --verbose --fix --projects " + project +"\n" + returncode = errorcode + + # Fix mode doesn't return an error, so we have to run the build, then run with + # --fix to generate the patch. This means that it is likely only the first run + # of jit-format will return a formatting failure. + if errorcode == -2: + # If errorcode was -2, no need to run clang-tidy again + proc = subprocess.Popen([jitformat, "--fix", "--untidy", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) + output,error = proc.communicate() + else: + # Otherwise, must run both + proc = subprocess.Popen([jitformat, "--fix", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) + output,error = proc.communicate() + + os.chdir(current_dir) + + patchFilePath = os.path.join(coreclr, "format.patch") + + if returncode != 0: + # Create a patch file + print("Creating patch file " + patchFilePath) + patchFile = open(patchFilePath, "w") + proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile) + output,error = proc.communicate() - if os.path.isfile(bootstrapPath): - print("Deleting " + bootstrapPath) - os.remove(bootstrapPath) - - if returncode != 0: - print("There were errors in formatting. Please run jit-format locally with: \n") - print(errorMessage) - print("\nOr download and apply generated patch:") - print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting") - print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on") - print(" Azure Pipelines' link.") - print("3. Select the 'Summary' tab.") - print("4. Open the 'Build artifacts published' entry.") - print("5. Find the link to the OS/architecture appropriate format patch file.") - print("6. Click on the link to download it.") - print("7. Unzip the patch file.") - print("8. git apply format.patch") - - if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"): - print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.") - - return returncode + if os.path.isdir(jitUtilsPath): + print("Deleting " + jitUtilsPath) + shutil.rmtree(jitUtilsPath, onerror=del_rw) + + if os.path.isfile(bootstrapPath): + print("Deleting " + bootstrapPath) + os.remove(bootstrapPath) + + if returncode != 0: + print("There were errors in formatting. Please run jit-format locally with: \n") + print(errorMessage) + print("\nOr download and apply generated patch:") + print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting") + print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on") + print(" Azure Pipelines' link.") + print("3. Select the 'Summary' tab.") + print("4. Open the 'Build artifacts published' entry.") + print("5. Find the link to the OS/architecture appropriate format patch file.") + print("6. Click on the link to download it.") + print("7. Unzip the patch file.") + print("8. git apply format.patch") + + if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"): + print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.") + + return returncode if __name__ == '__main__': return_code = main(sys.argv[1:]) diff --git a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt index f9639aa95aa7d..151d42f06c3d2 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 2.6) -project (ReversePInvokePassingByOutNative) +project (RPIP_ByOutNative) include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") include_directories("..") set(SOURCES @@ -7,7 +7,8 @@ set(SOURCES ) # Additional files to reference: # add the executable -add_library (ReversePInvokePassingByOutNative SHARED ${SOURCES}) -target_link_libraries(ReversePInvokePassingByOutNative ${LINK_LIBRARIES_ADDITIONAL}) +add_library (RPIP_ByOutNative SHARED ${SOURCES}) +set_property (TARGET RPIP_ByOutNative PROPERTY OUTPUT_NAME ReversePInvokePassingByOutNative) +target_link_libraries(RPIP_ByOutNative ${LINK_LIBRARIES_ADDITIONAL}) # add the install targets -install (TARGETS ReversePInvokePassingByOutNative DESTINATION bin) +install (TARGETS RPIP_ByOutNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt index 180d43c9676c7..3176cfc826e96 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 2.6) -project (ReversePInvokePassingByRefNative) +project (RPIP_ByRefNative) include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") include_directories("..") set(SOURCES @@ -7,7 +7,8 @@ set(SOURCES ) # Additional files to reference: # add the executable -add_library (ReversePInvokePassingByRefNative SHARED ${SOURCES}) -target_link_libraries(ReversePInvokePassingByRefNative ${LINK_LIBRARIES_ADDITIONAL}) +add_library (RPIP_ByRefNative SHARED ${SOURCES}) +set_property (TARGET RPIP_ByRefNative PROPERTY OUTPUT_NAME ReversePInvokePassingByRefNative) +target_link_libraries(RPIP_ByRefNative ${LINK_LIBRARIES_ADDITIONAL}) # add the install targets -install (TARGETS ReversePInvokePassingByRefNative DESTINATION bin) +install (TARGETS RPIP_ByRefNative DESTINATION bin) diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index c7b3483f293a6..420f865c9acda 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -26,7 +26,7 @@ $([System.IO.Path]::GetFullPath(%(Identity))) - +