diff --git a/bazel/swig_java.bzl b/bazel/swig_java.bzl index 6b12e5b158..89e2911940 100644 --- a/bazel/swig_java.bzl +++ b/bazel/swig_java.bzl @@ -46,11 +46,6 @@ def _java_wrap_cc_impl(ctx): if target.label.workspace_root: include_path_sets.append(depset([target.label.workspace_root])) - # Add swig LIB files. - swig_base_path = ctx.executable._swig.dirname - swig_lib_path = swig_base_path + "/swig.runfiles/swig/Lib" - include_path_sets.append(depset([swig_lib_path + "/java", swig_lib_path])) - java_files_dir = ctx.actions.declare_directory("java_files") swig_args = ctx.actions.args() @@ -70,9 +65,12 @@ def _java_wrap_cc_impl(ctx): if ctx.attr.use_directors: generated_c_files.append(outhdr) + # Add swig LIB files. + swig_lib = {'SWIG_LIB': 'external/swig/Lib'} ctx.actions.run( outputs = generated_c_files + [java_files_dir], inputs = depset([src] + ctx.files.swig_includes, transitive = header_sets), + env = swig_lib, executable = ctx.executable._swig, arguments = [swig_args], mnemonic = "SwigCompile", @@ -205,11 +203,6 @@ def ortools_java_wrap_cc( name = name, srcs = [srcjar], deps = java_deps, - runtime_deps = [ - "//ortools/java/com/google/ortools:libjniortools.so", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:jniortools.dll", - ], visibility = visibility, **kwargs ) diff --git a/ortools/algorithms/samples/code_samples.bzl b/ortools/algorithms/samples/code_samples.bzl index f2bcb90162..e7fccfe662 100644 --- a/ortools/algorithms/samples/code_samples.bzl +++ b/ortools/algorithms/samples/code_samples.bzl @@ -37,11 +37,6 @@ def code_sample_java(name): name = name + "_java", srcs = [name + ".java"], main_class = "com.google.ortools.algorithms.samples." + name, - data = [ - "//ortools/java/com/google/ortools:libjniortools.so", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:jniortools.dll", - ], deps = [ "//ortools/algorithms/java:knapsacksolver", "//ortools/java/com/google/ortools:Loader", diff --git a/ortools/graph/java/BUILD.bazel b/ortools/graph/java/BUILD.bazel index 0c77fd3542..53162a93a8 100644 --- a/ortools/graph/java/BUILD.bazel +++ b/ortools/graph/java/BUILD.bazel @@ -37,11 +37,6 @@ java_junit5_test( name = "FlowTest", size= "small", srcs = ["FlowTest.java"], - data = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", - ], test_class = "com.google.ortools.graph.FlowTest", deps = [ "//ortools/java/com/google/ortools:Loader", diff --git a/ortools/graph/samples/code_samples.bzl b/ortools/graph/samples/code_samples.bzl index 589047335d..ae4fe37881 100644 --- a/ortools/graph/samples/code_samples.bzl +++ b/ortools/graph/samples/code_samples.bzl @@ -87,11 +87,6 @@ def code_sample_java(name): name = name + "_java", srcs = [name + ".java"], main_class = "com.google.ortools.graph.samples." + name, - data = [ - "//ortools/java/com/google/ortools:libjniortools.so", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:jniortools.dll", - ], deps = [ "//ortools/graph/java:graph", "//ortools/java/com/google/ortools:Loader", diff --git a/ortools/java/com/google/ortools/BUILD.bazel b/ortools/java/com/google/ortools/BUILD.bazel index 6f78ead4e0..871cb8e936 100644 --- a/ortools/java/com/google/ortools/BUILD.bazel +++ b/ortools/java/com/google/ortools/BUILD.bazel @@ -12,17 +12,12 @@ # limitations under the License. # Utilities to load native libraries in java or-tools. -java_library( - name = "Loader", - srcs = ["Loader.java"], - visibility = ["//visibility:public"], - deps = [ - "@maven//:net_java_dev_jna_jna", - ], -) - cc_binary( name = "libjniortools.so", + target_compatible_with = select({ + "@platforms//os:linux": [], + "//conditions:default": ["@platforms//:incompatible"], + }), linkshared = True, visibility = ["//visibility:public"], deps = [ @@ -37,6 +32,10 @@ cc_binary( cc_binary( name = "libjniortools.dylib", + target_compatible_with = select({ + "@platforms//os:osx": [], + "//conditions:default": ["@platforms//:incompatible"], + }), linkshared = True, visibility = ["//visibility:public"], deps = [ @@ -51,6 +50,10 @@ cc_binary( cc_binary( name = "jniortools.dll", + target_compatible_with = select({ + "@platforms//os:windows": [], + "//conditions:default": ["@platforms//:incompatible"], + }), linkshared = True, visibility = ["//visibility:public"], deps = [ @@ -62,3 +65,17 @@ cc_binary( "//ortools/util/java:sorted_interval_list_cc", ], ) + +java_library( + name = "Loader", + srcs = ["Loader.java"], + visibility = ["//visibility:public"], + runtime_deps = select({ + "@platforms//os:linux": ["//ortools/java/com/google/ortools:libjniortools.so"], + "@platforms//os:osx": ["//ortools/java/com/google/ortools:libjniortools.dylib"], + "@platforms//os:windows": ["//ortools/java/com/google/ortools:jniortools.dll"], + }), + deps = [ + "@maven//:net_java_dev_jna_jna", + ], +) diff --git a/ortools/java/com/google/ortools/modelbuilder/BUILD.bazel b/ortools/java/com/google/ortools/modelbuilder/BUILD.bazel index 8bf9945a73..68577008e3 100644 --- a/ortools/java/com/google/ortools/modelbuilder/BUILD.bazel +++ b/ortools/java/com/google/ortools/modelbuilder/BUILD.bazel @@ -30,9 +30,7 @@ java_library( ], visibility = ["//visibility:public"], deps = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", + "//ortools/java/com/google/ortools:Loader", "//ortools/linear_solver/java:modelbuilder", ], ) diff --git a/ortools/java/com/google/ortools/sat/BUILD.bazel b/ortools/java/com/google/ortools/sat/BUILD.bazel index 0852595113..db24f83bb1 100644 --- a/ortools/java/com/google/ortools/sat/BUILD.bazel +++ b/ortools/java/com/google/ortools/sat/BUILD.bazel @@ -43,9 +43,7 @@ java_library( ], visibility = ["//visibility:public"], deps = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", + "//ortools/java/com/google/ortools:Loader", "//ortools/sat:cp_model_java_proto", "//ortools/sat:sat_parameters_java_proto", "//ortools/sat/java:sat", diff --git a/ortools/linear_solver/samples/code_samples.bzl b/ortools/linear_solver/samples/code_samples.bzl index 4589dd061d..668aaf56ab 100644 --- a/ortools/linear_solver/samples/code_samples.bzl +++ b/ortools/linear_solver/samples/code_samples.bzl @@ -73,11 +73,6 @@ def code_sample_java(name): name = name + "_java", srcs = [name + ".java"], main_class = "com.google.ortools.linearsolver.samples." + name, - data = [ - "//ortools/java/com/google/ortools:libjniortools.so", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:jniortools.dll", - ], deps = [ "//ortools/linear_solver/java:modelbuilder", "//ortools/java/com/google/ortools/modelbuilder", diff --git a/ortools/sat/java/BUILD.bazel b/ortools/sat/java/BUILD.bazel index 3343e21c4b..767e7cce72 100644 --- a/ortools/sat/java/BUILD.bazel +++ b/ortools/sat/java/BUILD.bazel @@ -44,11 +44,6 @@ ortools_java_wrap_cc( java_junit5_test( name = "CpModelTest", srcs = ["CpModelTest.java"], - data = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", - ], test_class = "com.google.ortools.sat.CpModelTest", deps = [ "//ortools/java/com/google/ortools:Loader", @@ -69,11 +64,6 @@ java_junit5_test( java_junit5_test( name = "CpSolverTest", srcs = ["CpSolverTest.java"], - data = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", - ], test_class = "com.google.ortools.sat.CpSolverTest", deps = [ "//ortools/java/com/google/ortools:Loader", @@ -94,11 +84,6 @@ java_junit5_test( java_junit5_test( name = "LinearExprTest", srcs = ["LinearExprTest.java"], - data = [ - "//ortools/java/com/google/ortools:jniortools.dll", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:libjniortools.so", - ], test_class = "com.google.ortools.sat.LinearExprTest", deps = [ "//ortools/java/com/google/ortools:Loader", diff --git a/ortools/sat/samples/code_samples.bzl b/ortools/sat/samples/code_samples.bzl index c2e76e5697..ed2ba84b92 100644 --- a/ortools/sat/samples/code_samples.bzl +++ b/ortools/sat/samples/code_samples.bzl @@ -79,11 +79,6 @@ def code_sample_java(name): name = name + "_java", srcs = [name + ".java"], main_class = "com.google.ortools.sat.samples." + name, - data = [ - "//ortools/java/com/google/ortools:libjniortools.so", - "//ortools/java/com/google/ortools:libjniortools.dylib", - "//ortools/java/com/google/ortools:jniortools.dll", - ], deps = [ "//ortools/sat/java:sat", "//ortools/java/com/google/ortools:Loader",