cmake: Fix XCode dotnet build

This commit is contained in:
Corentin Le Molgat
2022-08-29 16:50:51 +02:00
parent a3d0375dc8
commit c90b245eab

View File

@@ -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()