Files @ r25011:61d28a13bb41
Branch filter:

Location: cpp/openttd-patchpack/source/cmake/LinkPackage.cmake

Patric Stout
Remove: [Video] no longer draw in a thread

Drawing in a thread is a bit odd, and often leads to surprising
issues. For example, OpenGL would only allow it if you move the
full context to the thread. Which is not always easily done on
all OSes.
In general, the advise is to handle system events and drawing
from the main thread, and do everything else in other threads.
So, let's be more like other games.

Additionally, putting the drawing routine in a thread was only
done for a few targets.

Upcoming commit will move the GameLoop in a thread, which will
work for all targets.
function(link_package NAME)
    cmake_parse_arguments(LP "ENCOURAGED" "TARGET" "" ${ARGN})

    if(${NAME}_FOUND)
        string(TOUPPER "${NAME}" UCNAME)
        add_definitions(-DWITH_${UCNAME})
        # Some libraries' cmake packages (looking at you, SDL2) leave trailing whitespace in the link commands,
        # which (later) cmake considers to be an error. Work around this with by stripping the incoming string.
        if(LP_TARGET AND TARGET ${LP_TARGET})
            string(STRIP "${LP_TARGET}" LP_TARGET)
            target_link_libraries(openttd ${LP_TARGET})
            message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${LP_TARGET}")
        else()
            string(STRIP "${${NAME}_LIBRARY}" ${NAME}_LIBRARY)
            string(STRIP "${${NAME}_LIBRARIES}" ${NAME}_LIBRARIES)
            include_directories(${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR})
            target_link_libraries(openttd ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY})
            message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR} -- ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY}")
        endif()
    elseif(LP_ENCOURAGED)
        message(WARNING "${NAME} not found; compiling OpenTTD without ${NAME} is strongly disencouraged")
    endif()
endfunction()