| load("//examples/windows/dll:windows_dll_library.bzl", "windows_dll_library") | |
| filegroup( | |
| name = "srcs", | |
| srcs = glob(["**"]), | |
| visibility = ["//examples:__pkg__"], | |
| ) | |
| # Define the shared library | |
| windows_dll_library( | |
| name = "hellolib", | |
| srcs = ["hello-library.cpp"], | |
| hdrs = ["hello-library.h"], | |
| # Define COMPILING_DLL to export symbols during compiling the DLL. | |
| # See hello-library.h | |
| copts = ["/DCOMPILING_DLL"], | |
| ) | |
| # **Explicitly link to hellolib.dll** | |
| ## Declare hellolib.dll as data dependency and load it explicitly in code. | |
| cc_binary( | |
| name = "hello_world-load-dll-at-runtime", | |
| srcs = ["hello_world-load-dll-at-runtime.cpp"], | |
| data = [":hellolib.dll"], | |
| ) | |
| # **Implicitly link to hellolib.dll** | |
| ## Link to hellolib.dll through its import library. | |
| cc_binary( | |
| name = "hello_world-link-to-dll-via-lib", | |
| srcs = ["hello_world-link-to-dll-via-lib.cpp"], | |
| deps = [":hellolib"], | |
| ) |