mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake")
 | 
						|
load("@rules_license//rules:license.bzl", "license")
 | 
						|
 | 
						|
package(default_applicable_licenses = [":license"])
 | 
						|
 | 
						|
license(
 | 
						|
    name = "license",
 | 
						|
    license_kinds = ["@rules_license//licenses/spdx:MIT"],
 | 
						|
    license_text = "LICENSE.txt",
 | 
						|
)
 | 
						|
 | 
						|
exports_files(["LICENSE.txt"])
 | 
						|
 | 
						|
filegroup(
 | 
						|
    name = "all_files",
 | 
						|
    srcs = glob(["**"]),
 | 
						|
)
 | 
						|
 | 
						|
cmake(
 | 
						|
    name = "z3_dynamic",
 | 
						|
    generate_args = [
 | 
						|
        "-G Ninja", 
 | 
						|
        "-D Z3_EXPORTED_TARGETS=",  # prevents installation, leaving symlinks between dylibs intact on copy
 | 
						|
    ],
 | 
						|
    lib_source = ":all_files",
 | 
						|
    out_binaries = ["z3"],
 | 
						|
    out_shared_libs = select({
 | 
						|
        "@platforms//os:linux": ["libz3.so"],
 | 
						|
        # "@platforms//os:osx": ["libz3.dylib"],    # FIXME: this is not working, libz3<version>.dylib is not copied
 | 
						|
        # "@platforms//os:windows": ["z3.dll"],     # TODO: test this
 | 
						|
        "//conditions:default": ["@platforms//:incompatible"],
 | 
						|
    }),
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
cmake(
 | 
						|
    name = "z3_static",
 | 
						|
    generate_args = [
 | 
						|
        "-G Ninja", 
 | 
						|
        "-D BUILD_SHARED_LIBS=OFF",
 | 
						|
        "-D Z3_BUILD_LIBZ3_SHARED=OFF",
 | 
						|
    ],
 | 
						|
    lib_source = ":all_files",
 | 
						|
    out_binaries = ["z3"],
 | 
						|
    out_static_libs = select({
 | 
						|
        "@platforms//os:linux": ["libz3.a"],
 | 
						|
        "@platforms//os:osx": ["libz3.a"],
 | 
						|
        # "@platforms//os:windows": ["z3.lib"],     # TODO: test this
 | 
						|
        "//conditions:default": ["@platforms//:incompatible"],
 | 
						|
    }),
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
alias(
 | 
						|
    name = "z3",
 | 
						|
    actual = ":z3_dynamic",
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 |