diff --git a/cmake/dotnet.cmake b/cmake/dotnet.cmake index df43f6b444..d7c59abc33 100644 --- a/cmake/dotnet.cmake +++ b/cmake/dotnet.cmake @@ -132,9 +132,9 @@ foreach(SUBPROJECT IN ITEMS algorithms graph init linear_solver constraint_solve target_link_libraries(google-ortools-native PRIVATE dotnet_${SUBPROJECT}) endforeach() -file(COPY ${PROJECT_SOURCE_DIR}/tools/doc/orLogo.png DESTINATION dotnet) +file(COPY ${PROJECT_SOURCE_DIR}/tools/doc/orLogo.png DESTINATION ${PROJECT_BINARY_DIR}/dotnet) set(DOTNET_LOGO_DIR "${PROJECT_BINARY_DIR}/dotnet") -configure_file(${PROJECT_SOURCE_DIR}/ortools/dotnet/Directory.Build.props.in dotnet/Directory.Build.props) +configure_file(${PROJECT_SOURCE_DIR}/ortools/dotnet/Directory.Build.props.in ${PROJECT_BINARY_DIR}/dotnet/Directory.Build.props) # Generate Protobuf .Net sources set(PROTO_DOTNETS) @@ -196,7 +196,7 @@ else() COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/ortools/dotnet/${DOTNET_SNK_PROJECT} ${DOTNET_SNK_PROJECT} - COMMAND ${DOTNET_EXECUTABLE} run + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --project ${DOTNET_SNK_PROJECT}/${DOTNET_SNK_PROJECT}.csproj /or-tools.snk BYPRODUCTS @@ -232,10 +232,11 @@ add_custom_command( add_custom_command( OUTPUT ${DOTNET_NATIVE_PROJECT_DIR}/timestamp - COMMAND ${DOTNET_EXECUTABLE} build -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_NATIVE_PROJECT}.csproj - COMMAND ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_NATIVE_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_NATIVE_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_NATIVE_PROJECT}.csproj COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_NATIVE_PROJECT_DIR}/timestamp DEPENDS + ${PROJECT_BINARY_DIR}/dotnet/Directory.Build.props ${DOTNET_NATIVE_PROJECT_DIR}/${DOTNET_NATIVE_PROJECT}.csproj ${PROJECT_BINARY_DIR}/dotnet/or-tools.snk Dotnet${PROJECT_NAME}_proto @@ -243,6 +244,7 @@ add_custom_command( BYPRODUCTS ${DOTNET_NATIVE_PROJECT_DIR}/bin ${DOTNET_NATIVE_PROJECT_DIR}/obj + VERBATIM COMMENT "Generate .Net native package ${DOTNET_NATIVE_PROJECT} (${DOTNET_NATIVE_PROJECT_DIR}/timestamp)" WORKING_DIRECTORY ${DOTNET_NATIVE_PROJECT_DIR}) @@ -275,8 +277,8 @@ add_custom_command( add_custom_command( OUTPUT ${DOTNET_PROJECT_DIR}/timestamp - COMMAND ${DOTNET_EXECUTABLE} build -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_PROJECT}.csproj - COMMAND ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_PROJECT}.csproj COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_PROJECT_DIR}/timestamp DEPENDS ${PROJECT_BINARY_DIR}/dotnet/or-tools.snk @@ -285,6 +287,7 @@ add_custom_command( BYPRODUCTS ${DOTNET_PROJECT_DIR}/bin ${DOTNET_PROJECT_DIR}/obj + VERBATIM COMMENT "Generate .Net package ${DOTNET_PROJECT} (${DOTNET_PROJECT_DIR}/timestamp)" WORKING_DIRECTORY ${DOTNET_PROJECT_DIR}) @@ -328,7 +331,7 @@ function(add_dotnet_test FILE_NAME) add_custom_command( OUTPUT ${DOTNET_TEST_DIR}/timestamp - COMMAND ${DOTNET_EXECUTABLE} build -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release ${TEST_NAME}.csproj COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_TEST_DIR}/timestamp DEPENDS ${DOTNET_TEST_DIR}/${TEST_NAME}.csproj @@ -337,7 +340,8 @@ function(add_dotnet_test FILE_NAME) BYPRODUCTS ${DOTNET_TEST_DIR}/bin ${DOTNET_TEST_DIR}/obj - COMMENT "Compiling .Net ${COMPONENT_NAME}/${TEST_NAME}.cs (${DOTNET_TEST_DIR}/timestamp)" + VERBATIM + COMMENT "Compiling .Net ${COMPONENT_NAME}/${TEST_NAME}.cs (${DOTNET_TEST_DIR}/timestamp)" WORKING_DIRECTORY ${DOTNET_TEST_DIR}) add_custom_target(dotnet_${COMPONENT_NAME}_${TEST_NAME} ALL @@ -348,7 +352,7 @@ function(add_dotnet_test FILE_NAME) if(BUILD_TESTING) add_test( NAME dotnet_${COMPONENT_NAME}_${TEST_NAME} - COMMAND ${DOTNET_EXECUTABLE} test --no-build -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} test --no-build -c Release ${TEST_NAME}.csproj WORKING_DIRECTORY ${DOTNET_TEST_DIR}) endif() message(STATUS "Configuring test ${FILE_NAME} done") @@ -390,8 +394,8 @@ function(add_dotnet_sample FILE_NAME) add_custom_command( OUTPUT ${DOTNET_SAMPLE_DIR}/timestamp - COMMAND ${DOTNET_EXECUTABLE} build -c Release - COMMAND ${DOTNET_EXECUTABLE} pack -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} pack -c Release COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_SAMPLE_DIR}/timestamp DEPENDS ${DOTNET_SAMPLE_DIR}/${SAMPLE_NAME}.csproj @@ -412,13 +416,13 @@ function(add_dotnet_sample FILE_NAME) if(USE_DOTNET_CORE_31) add_test( NAME dotnet_${COMPONENT_NAME}_${SAMPLE_NAME}_netcoreapp31 - COMMAND ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release WORKING_DIRECTORY ${DOTNET_SAMPLE_DIR}) endif() if(USE_DOTNET_6) add_test( NAME dotnet_${COMPONENT_NAME}_${SAMPLE_NAME}_net60 - COMMAND ${DOTNET_EXECUTABLE} run --no-build --framework net6.0 -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework net6.0 -c Release WORKING_DIRECTORY ${DOTNET_SAMPLE_DIR}) endif() endif() @@ -461,8 +465,8 @@ function(add_dotnet_example FILE_NAME) add_custom_command( OUTPUT ${DOTNET_EXAMPLE_DIR}/timestamp - COMMAND ${DOTNET_EXECUTABLE} build -c Release - COMMAND ${DOTNET_EXECUTABLE} pack -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release ${EXAMPLE_NAME}.csproj + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} pack -c Release ${EXAMPLE_NAME}.csproj COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_EXAMPLE_DIR}/timestamp DEPENDS ${DOTNET_EXAMPLE_DIR}/${EXAMPLE_NAME}.csproj @@ -471,7 +475,8 @@ function(add_dotnet_example FILE_NAME) BYPRODUCTS ${DOTNET_EXAMPLE_DIR}/bin ${DOTNET_EXAMPLE_DIR}/obj - COMMENT "Compiling .Net ${COMPONENT_NAME}/${EXAMPLE_NAME}.cs (${DOTNET_EXAMPLE_DIR}/timestamp)" + VERBATIM + COMMENT "Compiling .Net ${COMPONENT_NAME}/${EXAMPLE_NAME}.cs (${DOTNET_EXAMPLE_DIR}/timestamp)" WORKING_DIRECTORY ${DOTNET_EXAMPLE_DIR}) add_custom_target(dotnet_${COMPONENT_NAME}_${EXAMPLE_NAME} ALL @@ -483,13 +488,13 @@ function(add_dotnet_example FILE_NAME) if(USE_DOTNET_CORE_31) add_test( NAME dotnet_${COMPONENT_NAME}_${EXAMPLE_NAME}_netcoreapp31 - COMMAND ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release ${EXAMPLE_NAME}.csproj WORKING_DIRECTORY ${DOTNET_EXAMPLE_DIR}) endif() if(USE_DOTNET_6) add_test( NAME dotnet_${COMPONENT_NAME}_${EXAMPLE_NAME}_net60 - COMMAND ${DOTNET_EXECUTABLE} run --no-build --framework net6.0 -c Release + COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework net6.0 -c Release ${EXAMPLE_NAME}.csproj WORKING_DIRECTORY ${DOTNET_EXAMPLE_DIR}) endif() endif()