diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc8c402..0e22756 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,6 +20,9 @@
 include_directories(BEFORE SYSTEM "${RISCV_TOOLCHAIN_ROOT}/riscv32-unknown-elf/include/newlib-nano/")
 link_directories(BEFORE "${RISCV_TOOLCHAIN_ROOT}/riscv32-unknown-elf/lib/newlib-nano/")
 
+include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR})
+include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_BINARY_DIR})
+
 #-------------------------------------------------------------------------------
 # Springbok-specific settings
 #-------------------------------------------------------------------------------
@@ -79,7 +82,8 @@
 
 # Apply IREE's CMake variables and build options so we can use IREE build
 # functions properly in this project.
-include(${IREE_SOURCE_DIR}/build_tools/cmake/iree_copts.cmake)
+set(IREE_ROOT_DIR "${IREE_SOURCE_DIR}" CACHE PATH "IREE Root directory")
+include(springbok_ops)
 
 include(springbok_bytecode_module)
 include(springbok_c_module)
@@ -94,22 +98,6 @@
 REQUIRED)
 link_libraries(m)
 
-# Apply hacks to avoid adding the `iree::` prefix to the out-of-tree
-# `iree_cc_library` function usage
-function(add_library library)
-  cmake_parse_arguments(AL "ALIAS;IMPORTED" "" "" ${ARGN})
-  _add_library(${library} ${ARGN})
-  if(AL_ALIAS)
-    string(FIND "${library}" "iree::samples::" _AL_IREE_SAMPLES)
-    if(_AL_IREE_SAMPLES EQUAL 0)
-      string(REPLACE "iree::" "" _AL_IREE_SAMPLES_ALIAS "${library}")
-      string(REPLACE "ALIAS;" "" _AL_IREE_REAL_TARGET "${ARGN}")
-      # Add an alias target starting with the iree:: prefix removed
-      _add_library(${_AL_IREE_SAMPLES_ALIAS} ALIAS ${_AL_IREE_REAL_TARGET})
-    endif()
-  endif()
-endfunction()
-
 # Add the included directory here.
 add_subdirectory(samples)
 
diff --git a/cmake/springbok_ops.cmake b/cmake/springbok_ops.cmake
new file mode 100644
index 0000000..7456694
--- /dev/null
+++ b/cmake/springbok_ops.cmake
@@ -0,0 +1,84 @@
+# Add Compilation and Linker options based on iree/build_tools/cmake/iree_cops.cmake
+
+# Key compilation options
+iree_select_compiler_opts(IREE_DEFAULT_COPTS
+  CLANG_OR_GCC
+  "-fvisibility=hidden"
+
+  # NOTE: The RTTI setting must match what LLVM was compiled with (defaults
+  # to RTTI disabled).
+  "$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>"
+  "$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>"
+)
+
+# Compiler diagnostics.
+# Please keep these in sync with build_tools/bazel/iree.bazelrc
+iree_select_compiler_opts(IREE_DEFAULT_COPTS
+
+  # Clang diagnostics. These largely match the set of warnings used within
+  # Google. They have not been audited super carefully by the IREE team but are
+  # generally thought to be a good set and consistency with those used
+  # internally is very useful when importing. If you feel that some of these
+  # should be different (especially more strict), please raise an issue!
+  CLANG
+  "-Werror"
+  "-Wall"
+
+  # Disable warnings we don't care about or that generally have a low
+  # signal/noise ratio.
+  "-Wno-ambiguous-member-template"
+  "-Wno-char-subscripts"
+  "-Wno-deprecated-declarations"
+  "-Wno-extern-c-compat" # Matches upstream. Cannot impact due to extern C inclusion method.
+  "-Wno-gnu-alignof-expression"
+  "-Wno-gnu-variable-sized-type-not-at-end"
+  "-Wno-ignored-optimization-argument"
+  "-Wno-invalid-offsetof" # Technically UB but needed for intrusive ptrs
+  "-Wno-invalid-source-encoding"
+  "-Wno-mismatched-tags"
+  "-Wno-pointer-sign"
+  "-Wno-reserved-user-defined-literal"
+  "-Wno-return-type-c-linkage"
+  "-Wno-self-assign-overloaded"
+  "-Wno-sign-compare"
+  "-Wno-signed-unsigned-wchar"
+  "-Wno-strict-overflow"
+  "-Wno-trigraphs"
+  "-Wno-unknown-pragmas"
+  "-Wno-unknown-warning-option"
+  "-Wno-unused-command-line-argument"
+  "-Wno-unused-const-variable"
+  "-Wno-unused-function"
+  "-Wno-unused-local-typedef"
+  "-Wno-unused-private-field"
+  "-Wno-user-defined-warnings"
+
+  # Explicitly enable some additional warnings.
+  # Some of these aren't on by default, or under -Wall, or are subsets of
+  # warnings turned off above.
+  "-Wctad-maybe-unsupported"
+  "-Wfloat-overflow-conversion"
+  "-Wfloat-zero-conversion"
+  "-Wfor-loop-analysis"
+  "-Wformat-security"
+  "-Wgnu-redeclared-enum"
+  "-Wimplicit-fallthrough"
+  "-Winfinite-recursion"
+  "-Wliteral-conversion"
+  "-Wnon-virtual-dtor"
+  "-Woverloaded-virtual"
+  "-Wself-assign"
+  "-Wstring-conversion"
+  "-Wtautological-overlap-compare"
+  "-Wthread-safety"
+  "-Wthread-safety-beta"
+  "-Wunused-comparison"
+  "-Wvla"
+)
+
+
+iree_select_compiler_opts(IREE_DEFAULT_LINKOPTS
+  CLANG_OR_GCC
+  # Required by all modern software, effectively:
+  "-lm"
+)
diff --git a/samples/util/util.c b/samples/util/util.c
index 3d2e9f9..858a0ec 100644
--- a/samples/util/util.c
+++ b/samples/util/util.c
@@ -79,8 +79,8 @@
   }
   iree_vm_module_t *hal_module = NULL;
   if (iree_status_is_ok(result)) {
-    result =
-        iree_hal_module_create(device, iree_allocator_system(), &hal_module);
+    result = iree_hal_module_create(device, IREE_HAL_MODULE_FLAG_NONE,
+                                    iree_allocator_system(), &hal_module);
   }
   // Load bytecode or C module.
   iree_vm_module_t *module = NULL;
