diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index 7ca69f6a29f00beb05d77b633dd618b00338cb4c..95aad2eda8d3f45f7ee9af932daf3609543977eb 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -43,7 +43,8 @@ function(lua_source varname filename)
     set (tmpfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.new.c")
     set (dstfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.c")
     get_filename_component(module ${filename} NAME_WE)
-    get_filename_component(dstdir ${dstfile} DIRECTORY)
+    get_filename_component(_name ${dstfile} NAME)
+    string(REGEX REPLACE "${_name}$" "" dstdir ${dstfile})
     if (IS_DIRECTORY ${dstdir})
     else()
         file(MAKE_DIRECTORY ${dstdir})