The problem was with which cimgui files I included.
I originally only included "${CIMGUI_DIR}/*.c" because I saw the cimgui.h file, thinking there's a matching C file, since C++ files have .hpp headers...
Turns out, it's cimgui.cpp, so obviously, the file wasn't linked properly.
Changing my imports to the following fixed my linking errors:
file(GLOB CIMGUI_C_FILES
"${IMGUI_DIR}/*.cpp" # .c -> .cpp
"${IMGUI_BACKENDS}/imgui_impl_glfw.cpp"
"${IMGUI_BACKENDS}/imgui_impl_opengl3.cpp"
)