set gl attributes before creating the window, or some of them might be ignored (like vsync on osx); also don't skip some reloads when switching to fullscreen and back; finally did a little code re-organisation
file(GLOB lua_src *.c *.h)
set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
IF(APPLE)
set(build_type STATIC)
add_definitions(-DLUA_USE_LINUX)
add_library (lua ${build_type} ${lua_src})
ENDIF(APPLE)
IF(WIN32)
set(build_type SHARED)
add_definitions(-DLUA_BUILD_AS_DLL)
add_library (lua ${build_type} ${lua_src})
SET_TARGET_PROPERTIES(lua PROPERTIES PREFIX "")
install(TARGETS lua RUNTIME DESTINATION ${target_dir})
endif(WIN32)