Files
ortools-clone/makefiles/Makefile.test.mk
Corentin Le Molgat 62cbe9a228 dotnet: Full Rework
- Create native project runtime.{rid}.Google.OrTools
  - follow the microsoft convention e.g.:
  https://www.nuget.org/packages/Microsoft.NETCore.App/
  https://www.nuget.org/packages/runtime.linux-x64.Microsoft.NETCore.App/
- Target `make_dotnet` targets local nupkg instead of dll.
- Use 4096 RSA key for or-tools.snk
- Clean nuget cache in `clean_dotnet` recipe

Refactor:
- Move cs files to ortools/*/csharp
- Move dotnet project to ortools/dotnet/Google.OrTools
- Move example generation to temp_dotnet
  - Avoid to mess the `BIN_DIR`
- Rework Google.OrTools.FSharp

Cleanup:
- Remove deps to netfx.props since we only support:
  netstandard2.0 TFM and netcoreapp2.1 Runtime TFM
- Remove OrTools.nuspec.in
  -> use newly added properties to .csproj format
- Remove of ortools/dotnet/OrTools project
  - replaced by ortools/dotnet/Google.OrTools
- Remove provided protobuf.dll.
  - Automatically retrieved from nuget.org

Misc:
- Add **/*.csproj to gitignore
- Add **/runtime.json to gitignore

- dotnet: Makefile windows fix
  - make.exe doesn't support `else ifeq`
2018-08-30 11:58:47 +02:00

287 lines
8.2 KiB
Makefile
Executable File

# Targets to run tests
.PHONY: test_cc_examples
test_cc_examples: cc
$(BIN_DIR)$Sgolomb$E --size=5
$(BIN_DIR)$Scvrptw$E
$(BIN_DIR)$Sflow_api$E
$(BIN_DIR)$Slinear_programming$E
$(BIN_DIR)$Sinteger_programming$E
$(BIN_DIR)$Stsp$E
$(BIN_DIR)$Sac4r_table_test$E
$(BIN_DIR)$Sboolean_test$E
$(BIN_DIR)$Sbug_fz1$E
$(BIN_DIR)$Scpp11_test$E
$(BIN_DIR)$Sforbidden_intervals_test$E
$(BIN_DIR)$Sgcc_test$E
# $(BIN_DIR)$Sissue173$E # error: too long
$(BIN_DIR)$Sissue57$E
$(BIN_DIR)$Smin_max_test$E
$(BIN_DIR)$Svisitor_test$E
.PHONY: test_fz_examples
test_fz_examples: fz
$(BIN_DIR)$Sfz$E $(EX_DIR)$Sflatzinc$Sgolomb.fzn
$(BIN_DIR)$Sfz$E $(EX_DIR)$Sflatzinc$Salpha.fzn
.PHONY: test_python_examples
test_python_examples: python
$(MAKE) rpy_3_jugs_mip
$(MAKE) rpy_3_jugs_regular
$(MAKE) rpy_alldifferent_except_0
$(MAKE) rpy_all_interval
$(MAKE) rpy_alphametic
$(MAKE) rpy_appointments
$(MAKE) rpy_a_round_of_golf
$(MAKE) rpy_assignment6_mip
$(MAKE) rpy_assignment
$(MAKE) rpy_assignment_sat
$(MAKE) rpy_assignment_with_constraints
$(MAKE) rpy_assignment_with_constraints_sat
$(MAKE) rpy_bacp
$(MAKE) rpy_balance_group_sat
$(MAKE) rpy_blending
$(MAKE) rpy_broken_weights
$(MAKE) rpy_bus_schedule
$(MAKE) rpy_car
$(MAKE) rpy_check_dependencies
$(MAKE) rpy_chemical_balance_lp
$(MAKE) rpy_chemical_balance_sat
$(MAKE) rpy_circuit
$(MAKE) rpy_code_samples_sat
$(MAKE) rpy_coins3
$(MAKE) rpy_coins_grid_mip
$(MAKE) rpy_coins_grid ARGS="5 2"
$(MAKE) rpy_coloring_ip
$(MAKE) rpy_combinatorial_auction2
$(MAKE) rpy_contiguity_regular
$(MAKE) rpy_costas_array
$(MAKE) rpy_covering_opl
$(MAKE) rpy_cp_is_fun_sat
$(MAKE) rpy_crew
$(MAKE) rpy_crossword2
$(MAKE) rpy_crypta
$(MAKE) rpy_crypto
$(MAKE) rpy_curious_set_of_integers
$(MAKE) rpy_cvrp
# $(MAKE) rpy_cvrptw_plot # error: py3 failure, missing numpy.
$(MAKE) rpy_cvrptw
$(MAKE) rpy_debruijn_binary
$(MAKE) rpy_diet1_b
$(MAKE) rpy_diet1_mip
$(MAKE) rpy_diet1
$(MAKE) rpy_discrete_tomography
$(MAKE) rpy_divisible_by_9_through_1
$(MAKE) rpy_dudeney
$(MAKE) rpy_einav_puzzle2
$(MAKE) rpy_einav_puzzle
$(MAKE) rpy_eq10
$(MAKE) rpy_eq20
$(MAKE) rpy_fill_a_pix
$(MAKE) rpy_flexible_job_shop_sat
$(MAKE) rpy_furniture_moving
$(MAKE) rpy_futoshiki
$(MAKE) rpy_game_theory_taha
$(MAKE) rpy_gate_scheduling_sat
$(MAKE) rpy_golomb8
$(MAKE) rpy_grocery
$(MAKE) rpy_hidato ARGS="3 3"
$(MAKE) rpy_hidato_sat
$(MAKE) rpy_hidato_table
$(MAKE) rpy_integer_programming
$(MAKE) rpy_jobshop_ft06_distance
$(MAKE) rpy_jobshop_ft06
$(MAKE) rpy_jobshop_ft06_sat
$(MAKE) rpy_just_forgotten
$(MAKE) rpy_kakuro
$(MAKE) rpy_kenken2
$(MAKE) rpy_killer_sudoku
$(MAKE) rpy_knapsack_cp
$(MAKE) rpy_knapsack_mip
$(MAKE) rpy_knapsack
$(MAKE) rpy_labeled_dice
$(MAKE) rpy_langford
$(MAKE) rpy_least_diff
$(MAKE) rpy_least_square
$(MAKE) rpy_lectures
$(MAKE) rpy_linear_assignment_api
$(MAKE) rpy_linear_programming
$(MAKE) rpy_magic_sequence_distribute
$(MAKE) rpy_magic_square_and_cards
$(MAKE) rpy_magic_square_mip
# warning: magic_square take 21s
$(MAKE) rpy_magic_square
$(MAKE) rpy_map
$(MAKE) rpy_marathon2
$(MAKE) rpy_max_flow_taha
$(MAKE) rpy_max_flow_winston1
$(MAKE) rpy_minesweeper
$(MAKE) rpy_mr_smith
$(MAKE) rpy_nonogram_default_search
$(MAKE) rpy_nonogram_regular
$(MAKE) rpy_nonogram_table2
$(MAKE) rpy_nonogram_table
# $(MAKE) rpy_nontransitive_dice # error: too long
$(MAKE) rpy_nqueens2
$(MAKE) rpy_nqueens3
$(MAKE) rpy_nqueens
$(MAKE) rpy_nqueens_sat
$(MAKE) rpy_nurse_rostering
$(MAKE) rpy_nurses_cp
# warning: nurse_sat take 18s
$(MAKE) rpy_nurses_sat
$(MAKE) rpy_olympic
$(MAKE) rpy_organize_day
$(MAKE) rpy_pandigital_numbers
$(MAKE) rpy_photo_problem
$(MAKE) rpy_place_number_puzzle
$(MAKE) rpy_p_median
$(MAKE) rpy_post_office_problem2
$(MAKE) rpy_production
$(MAKE) rpy_pyflow_example
$(MAKE) rpy_pyls_api
$(MAKE) rpy_quasigroup_completion
$(MAKE) rpy_rabbit_pheasant
$(MAKE) rpy_rcpsp_sat
$(MAKE) rpy_regular
$(MAKE) rpy_regular_table2
$(MAKE) rpy_regular_table
$(MAKE) rpy_rogo2
$(MAKE) rpy_rostering_with_travel
$(MAKE) rpy_safe_cracking
$(MAKE) rpy_scheduling_speakers
# $(MAKE) rpy_school_scheduling_sat # error: too long
$(MAKE) rpy_secret_santa2
# $(MAKE) rpy_secret_santa # error: too long
$(MAKE) rpy_send_more_money_any_base
$(MAKE) rpy_sendmore
$(MAKE) rpy_send_most_money
$(MAKE) rpy_seseman_b
$(MAKE) rpy_seseman
$(MAKE) rpy_set_covering2
$(MAKE) rpy_set_covering3
$(MAKE) rpy_set_covering4
$(MAKE) rpy_set_covering_deployment
$(MAKE) rpy_set_covering
$(MAKE) rpy_set_covering_skiena
$(MAKE) rpy_set_partition
$(MAKE) rpy_sicherman_dice
$(MAKE) rpy_simple_meeting
$(MAKE) rpy_ski_assignment
$(MAKE) rpy_slitherlink
$(MAKE) rpy_stable_marriage
$(MAKE) rpy_steel_lns
$(MAKE) rpy_steel_mill_slab_sat
$(MAKE) rpy_steel
$(MAKE) rpy_stigler
$(MAKE) rpy_strimko2
$(MAKE) rpy_subset_sum
$(MAKE) rpy_sudoku
$(MAKE) rpy_survo_puzzle
$(MAKE) rpy_toNum
$(MAKE) rpy_traffic_lights
$(MAKE) rpy_transit_time
$(MAKE) rpy_tsp
$(MAKE) rpy_vendor_scheduling
$(MAKE) rpy_volsay2
$(MAKE) rpy_volsay3
$(MAKE) rpy_volsay
$(MAKE) rpy_vrpgs
$(MAKE) rpy_vrp
$(MAKE) rpy_wedding_optimal_chart
$(MAKE) rpy_wedding_optimal_chart_sat
$(MAKE) rpy_who_killed_agatha
# $(MAKE) rpy_word_square # Not working on window since it rely on /usr/share/dict/words
$(MAKE) rpy_worker_schedule_sat
$(MAKE) rpy_xkcd
$(MAKE) rpy_young_tableaux
$(MAKE) rpy_zebra
$(SET_PYTHONPATH) "$(PYTHON_EXECUTABLE)" $(EX_DIR)$Stests$Stest_cp_api.py
$(SET_PYTHONPATH) "$(PYTHON_EXECUTABLE)" $(EX_DIR)$Stests$Stest_lp_api.py
.PHONY: test_java_examples
test_java_examples: java
$(MAKE) rjava_AllDifferentExcept0
$(MAKE) rjava_AllInterval
$(MAKE) rjava_CapacitatedVehicleRoutingProblemWithTimeWindows
$(MAKE) rjava_Circuit
$(MAKE) rjava_CoinsGridMIP
$(MAKE) rjava_ColoringMIP
$(MAKE) rjava_CoveringOpl
$(MAKE) rjava_Crossword
$(MAKE) rjava_DeBruijn
$(MAKE) rjava_Diet
$(MAKE) rjava_DietMIP
$(MAKE) rjava_DivisibleBy9Through1
$(MAKE) rjava_FlowExample
$(MAKE) rjava_GolombRuler
$(MAKE) rjava_IntegerProgramming
$(MAKE) rjava_Knapsack
$(MAKE) rjava_KnapsackMIP
$(MAKE) rjava_LeastDiff
$(MAKE) rjava_LinearAssignmentAPI
$(MAKE) rjava_LinearProgramming
$(MAKE) rjava_LsApi
$(MAKE) rjava_MagicSquare
$(MAKE) rjava_Map2
$(MAKE) rjava_Map
$(MAKE) rjava_Minesweeper
$(MAKE) rjava_MultiThreadTest
$(MAKE) rjava_NQueens2
$(MAKE) rjava_NQueens
$(MAKE) rjava_Partition
$(MAKE) rjava_QuasigroupCompletion
$(MAKE) rjava_RabbitsPheasants
$(MAKE) rjava_SendMoreMoney2
$(MAKE) rjava_SendMoreMoney
$(MAKE) rjava_SendMostMoney
$(MAKE) rjava_Seseman
$(MAKE) rjava_SetCovering2
$(MAKE) rjava_SetCovering3
$(MAKE) rjava_SetCovering4
$(MAKE) rjava_SetCoveringDeployment
$(MAKE) rjava_SetCovering
$(MAKE) rjava_SimpleRoutingTest
$(MAKE) rjava_StableMarriage
$(MAKE) rjava_StiglerMIP
$(MAKE) rjava_Strimko2
$(MAKE) rjava_Sudoku
$(MAKE) rjava_SurvoPuzzle
$(MAKE) rjava_ToNum
$(MAKE) rjava_Tsp
$(MAKE) rjava_Vrp
$(MAKE) rjava_WhoKilledAgatha
$(MAKE) rjava_Xkcd
$(MAKE) rjava_YoungTableaux
.PHONY: test_donet_examples
test_dotnet_examples: dotnet \
rdotnet_a_puzzle \
rdotnet_tsp \
#rdotnet_Program
# csharp test
.PHONY: test_csharp_examples
test_csharp_examples: csharp
$(warning C# netfx not working)
$(MONO) $(BIN_DIR)$Scslinearprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsintegerprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsrabbitspheasants$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsflow$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsknapsack$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sfurniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sorganize_day_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sfurniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stechtalk_scheduling$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Snurses_sat$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sjobshop_ft06_sat$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsls_api$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scstsp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scscvrptw$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stestcp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stestlp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stest_sat_model$(CLR_EXE_SUFFIX).exe
.PHONY: test_fsharp_examples
test_fsharp_examples: fsharp
$(warning F# netfx tests unimplemented)