cmake: Fix dotnet build
* fix cmake/dotnet.cmake * fix <cmp>/dotnet/CMakeLists.txt * fix examples/tests/CMakeLists.txt
This commit is contained in:
committed by
Corentin Le Molgat
parent
224ebed399
commit
baaf1ca82a
@@ -90,52 +90,9 @@ message(STATUS ".Net project: ${DOTNET_PROJECT}")
|
||||
set(DOTNET_PROJECT_DIR ${PROJECT_BINARY_DIR}/dotnet/${DOTNET_PROJECT})
|
||||
message(STATUS ".Net project build path: ${DOTNET_PROJECT_DIR}")
|
||||
|
||||
# Create the native library
|
||||
add_library(google-ortools-native SHARED "")
|
||||
set_target_properties(google-ortools-native PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
# note: macOS is APPLE and also UNIX !
|
||||
if(APPLE)
|
||||
set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "@loader_path")
|
||||
# Xcode fails to build if library doesn't contains at least one source file.
|
||||
if(XCODE)
|
||||
file(GENERATE
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/google-ortools-native/version.cpp
|
||||
CONTENT "namespace {char* version = \"${PROJECT_VERSION}\";}")
|
||||
target_sources(google-ortools-native PRIVATE ${PROJECT_BINARY_DIR}/google-ortools-native/version.cpp)
|
||||
endif()
|
||||
elseif(UNIX)
|
||||
set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "$ORIGIN")
|
||||
endif()
|
||||
|
||||
# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO)
|
||||
#get_target_property(FLAGS ${PROJECT_NAMESPACE}::ortools COMPILE_DEFINITIONS)
|
||||
set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT)
|
||||
if(USE_COINOR)
|
||||
list(APPEND FLAGS "-DUSE_CBC" "-DUSE_CLP")
|
||||
endif()
|
||||
if(USE_GLPK)
|
||||
list(APPEND FLAGS "-DUSE_GLPK")
|
||||
endif()
|
||||
if(USE_PDLP)
|
||||
list(APPEND FLAGS "-DUSE_PDLP")
|
||||
endif()
|
||||
if(USE_SCIP)
|
||||
list(APPEND FLAGS "-DUSE_SCIP")
|
||||
endif()
|
||||
list(APPEND CMAKE_SWIG_FLAGS ${FLAGS} "-I${PROJECT_SOURCE_DIR}")
|
||||
|
||||
# Swig wrap all libraries
|
||||
foreach(SUBPROJECT IN ITEMS algorithms graph init linear_solver constraint_solver sat util)
|
||||
add_subdirectory(ortools/${SUBPROJECT}/csharp)
|
||||
target_link_libraries(google-ortools-native PRIVATE dotnet_${SUBPROJECT})
|
||||
endforeach()
|
||||
|
||||
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 ${PROJECT_BINARY_DIR}/dotnet/Directory.Build.props)
|
||||
|
||||
##################
|
||||
## PROTO FILE ##
|
||||
##################
|
||||
# Generate Protobuf .Net sources
|
||||
set(PROTO_DOTNETS)
|
||||
file(GLOB_RECURSE proto_dotnet_files RELATIVE ${PROJECT_SOURCE_DIR}
|
||||
@@ -176,6 +133,121 @@ foreach(PROTO_FILE IN LISTS proto_dotnet_files)
|
||||
endforeach()
|
||||
add_custom_target(Dotnet${PROJECT_NAME}_proto DEPENDS ${PROTO_DOTNETS} ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
# Create the native library
|
||||
add_library(google-ortools-native SHARED "")
|
||||
set_target_properties(google-ortools-native PROPERTIES
|
||||
PREFIX ""
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
# note: macOS is APPLE and also UNIX !
|
||||
if(APPLE)
|
||||
set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "@loader_path")
|
||||
# Xcode fails to build if library doesn't contains at least one source file.
|
||||
if(XCODE)
|
||||
file(GENERATE
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/google-ortools-native/version.cpp
|
||||
CONTENT "namespace {char* version = \"${PROJECT_VERSION}\";}")
|
||||
target_sources(google-ortools-native PRIVATE ${PROJECT_BINARY_DIR}/google-ortools-native/version.cpp)
|
||||
endif()
|
||||
elseif(UNIX)
|
||||
set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "$ORIGIN")
|
||||
endif()
|
||||
|
||||
#################
|
||||
## .Net Test ##
|
||||
#################
|
||||
if(BUILD_TESTING)
|
||||
# add_dotnet_test()
|
||||
# CMake function to generate and build dotnet test.
|
||||
# Parameters:
|
||||
# the dotnet filename
|
||||
# e.g.:
|
||||
# add_dotnet_test(FooTests.cs)
|
||||
function(add_dotnet_test FILE_NAME)
|
||||
message(STATUS "Configuring test ${FILE_NAME} ...")
|
||||
get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE)
|
||||
get_filename_component(WRAPPER_DIR ${FILE_NAME} DIRECTORY)
|
||||
get_filename_component(COMPONENT_DIR ${WRAPPER_DIR} DIRECTORY)
|
||||
get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME)
|
||||
|
||||
set(DOTNET_TEST_DIR ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${TEST_NAME})
|
||||
message(STATUS "build path: ${DOTNET_TEST_DIR}")
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/ortools/dotnet/Test.csproj.in
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
@ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_TEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${FILE_NAME}
|
||||
${DOTNET_TEST_DIR}/
|
||||
MAIN_DEPENDENCY ${FILE_NAME}
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/timestamp
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release ${TEST_NAME}.csproj
|
||||
sdfasdad
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_TEST_DIR}/timestamp
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
dotnet_package
|
||||
BYPRODUCTS
|
||||
${DOTNET_TEST_DIR}/bin
|
||||
${DOTNET_TEST_DIR}/obj
|
||||
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
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/timestamp
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${TEST_NAME}
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} test --nologo -c Release ${TEST_NAME}.csproj
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
message(STATUS "Configuring test ${FILE_NAME} done")
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#######################
|
||||
## DOTNET WRAPPERS ##
|
||||
#######################
|
||||
# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO)
|
||||
#get_target_property(FLAGS ${PROJECT_NAMESPACE}::ortools COMPILE_DEFINITIONS)
|
||||
set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT)
|
||||
if(USE_COINOR)
|
||||
list(APPEND FLAGS "-DUSE_CBC" "-DUSE_CLP")
|
||||
endif()
|
||||
if(USE_GLPK)
|
||||
list(APPEND FLAGS "-DUSE_GLPK")
|
||||
endif()
|
||||
if(USE_PDLP)
|
||||
list(APPEND FLAGS "-DUSE_PDLP")
|
||||
endif()
|
||||
if(USE_SCIP)
|
||||
list(APPEND FLAGS "-DUSE_SCIP")
|
||||
endif()
|
||||
list(APPEND CMAKE_SWIG_FLAGS ${FLAGS} "-I${PROJECT_SOURCE_DIR}")
|
||||
|
||||
# Swig wrap all libraries
|
||||
foreach(SUBPROJECT IN ITEMS algorithms graph init linear_solver constraint_solver sat util)
|
||||
add_subdirectory(ortools/${SUBPROJECT}/csharp)
|
||||
target_link_libraries(google-ortools-native PRIVATE dotnet_${SUBPROJECT})
|
||||
endforeach()
|
||||
|
||||
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 ${PROJECT_BINARY_DIR}/dotnet/Directory.Build.props)
|
||||
|
||||
############################
|
||||
## .Net SNK file ##
|
||||
############################
|
||||
@@ -232,8 +304,10 @@ add_custom_command(
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_NATIVE_PROJECT_DIR}/timestamp
|
||||
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 env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_NATIVE_PROJECT}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} pack --nologo -c Release ${DOTNET_NATIVE_PROJECT}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_NATIVE_PROJECT_DIR}/timestamp
|
||||
DEPENDS
|
||||
${PROJECT_BINARY_DIR}/dotnet/Directory.Build.props
|
||||
@@ -277,8 +351,10 @@ add_custom_command(
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_PROJECT_DIR}/timestamp
|
||||
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 env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release /p:Platform=${DOTNET_PLATFORM} ${DOTNET_PROJECT}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} pack --nologo -c Release ${DOTNET_PROJECT}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_PROJECT_DIR}/timestamp
|
||||
DEPENDS
|
||||
${PROJECT_BINARY_DIR}/dotnet/or-tools.snk
|
||||
@@ -296,68 +372,6 @@ add_custom_target(dotnet_package ALL
|
||||
${DOTNET_PROJECT_DIR}/timestamp
|
||||
WORKING_DIRECTORY ${DOTNET_PROJECT_DIR})
|
||||
|
||||
#################
|
||||
## .Net Test ##
|
||||
#################
|
||||
# add_dotnet_test()
|
||||
# CMake function to generate and build dotnet test.
|
||||
# Parameters:
|
||||
# the dotnet filename
|
||||
# e.g.:
|
||||
# add_dotnet_test(FooTests.cs)
|
||||
function(add_dotnet_test FILE_NAME)
|
||||
message(STATUS "Configuring test ${FILE_NAME} ...")
|
||||
get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE)
|
||||
get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY)
|
||||
get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME)
|
||||
|
||||
set(DOTNET_TEST_DIR ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${TEST_NAME})
|
||||
message(STATUS "build path: ${DOTNET_TEST_DIR}")
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/ortools/dotnet/Test.csproj.in
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
@ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_TEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${FILE_NAME}
|
||||
${DOTNET_TEST_DIR}/
|
||||
MAIN_DEPENDENCY ${FILE_NAME}
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/timestamp
|
||||
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
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
dotnet_package
|
||||
BYPRODUCTS
|
||||
${DOTNET_TEST_DIR}/bin
|
||||
${DOTNET_TEST_DIR}/obj
|
||||
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
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/timestamp
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${TEST_NAME}
|
||||
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")
|
||||
endfunction()
|
||||
|
||||
###################
|
||||
## .Net Sample ##
|
||||
###################
|
||||
@@ -394,8 +408,10 @@ function(add_dotnet_sample FILE_NAME)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_SAMPLE_DIR}/timestamp
|
||||
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 env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} pack --nologo -c Release
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_SAMPLE_DIR}/timestamp
|
||||
DEPENDS
|
||||
${DOTNET_SAMPLE_DIR}/${SAMPLE_NAME}.csproj
|
||||
@@ -416,13 +432,15 @@ function(add_dotnet_sample FILE_NAME)
|
||||
if(USE_DOTNET_CORE_31)
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${SAMPLE_NAME}_netcoreapp31
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} run --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 ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${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()
|
||||
@@ -465,7 +483,8 @@ function(add_dotnet_example FILE_NAME)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_EXAMPLE_DIR}/timestamp
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} build -c Release ${EXAMPLE_NAME}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -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
|
||||
@@ -488,13 +507,15 @@ function(add_dotnet_example FILE_NAME)
|
||||
if(USE_DOTNET_CORE_31)
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${EXAMPLE_NAME}_netcoreapp31
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework netcoreapp3.1 -c Release ${EXAMPLE_NAME}.csproj
|
||||
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 ${CMAKE_COMMAND} -E env --unset=TARGETNAME ${DOTNET_EXECUTABLE} run --no-build --framework net6.0 -c Release ${EXAMPLE_NAME}.csproj
|
||||
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()
|
||||
|
||||
@@ -26,6 +26,6 @@ endif()
|
||||
if(BUILD_DOTNET_EXAMPLES)
|
||||
file(GLOB DOTNET_SRCS "*.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
add_dotnet_example(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_algorithms PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_algorithms PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_constraint_solver PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_constraint_solver PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/algorithms/*.cs">
|
||||
<Link>algorithms/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/algorithms/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/algorithms/csharp/*Tests.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/bop/*.cs">
|
||||
<Link>bop/%(Filename)%(Extension)</Link>
|
||||
@@ -40,49 +44,62 @@
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/graph/*.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*Tests.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/linear_solver/*.cs">
|
||||
<Link>linear_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*Tests.cs">
|
||||
<Link>linear_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/constraint_solver/*.cs">
|
||||
<Link>constraint_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*Tests.cs">
|
||||
<Link>constraint_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/init/*.cs">
|
||||
<Link>init/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/init/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/init/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/pdlp/*.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/pdlp/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/pdlp/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/sat/*.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/util/*.cs">
|
||||
<Link>util/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*Tests.cs">
|
||||
<Link>util/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Validate at least one runtime package has been generated -->
|
||||
<Target Name="ValidateRuntimePack" BeforeTargets="GenerateNuspec">
|
||||
<Target Name="ValidateRuntimePackage" BeforeTargets="GenerateNuspec">
|
||||
<ItemGroup>
|
||||
<RuntimeLinuxX64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.linux-x64.*.nupkg"/>
|
||||
<RuntimeOsxX64 Include="@DOTNET_PACKAGES_DIR@/@DOTNET_PROJECT@.runtime.osx-x64.*.nupkg"/>
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/algorithms/*.cs">
|
||||
<Link>algorithms/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/algorithms/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/algorithms/csharp/*Tests.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/bop/*.cs">
|
||||
<Link>bop/%(Filename)%(Extension)</Link>
|
||||
@@ -40,43 +44,56 @@
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/graph/*.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/graph/csharp/*Tests.cs">
|
||||
<Link>graph/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/linear_solver/*.cs">
|
||||
<Link>linear_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/linear_solver/csharp/*Tests.cs">
|
||||
<Link>linear_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/constraint_solver/*.cs">
|
||||
<Link>constraint_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/constraint_solver/csharp/*Tests.cs">
|
||||
<Link>constraint_solver/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/init/*.cs">
|
||||
<Link>init/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/init/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/init/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/pdlp/*.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/pdlp/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/pdlp/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/sat/*.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/sat/csharp/*Tests.cs">
|
||||
<Link>sat/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
|
||||
<Compile Include="@DOTNET_PROJECT_DIR@/ortools/util/*.cs">
|
||||
<Link>util/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*.cs">
|
||||
<Compile Include="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*.cs"
|
||||
Exclude="@PROJECT_SOURCE_DIR@/ortools/util/csharp/*Tests.cs">
|
||||
<Link>util/%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_graph PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_graph PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_init PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_init PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_linear_solver PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_linear_solver PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -29,3 +29,10 @@ set_target_properties(dotnet_sat PROPERTIES
|
||||
SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
target_link_libraries(dotnet_sat PRIVATE ortools::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB DOTNET_SRCS "*Tests.cs")
|
||||
foreach(FILE_NAME IN LISTS DOTNET_SRCS)
|
||||
add_dotnet_test(${FILE_NAME})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user