[Piglit] [RFC PATCH 2/2] cmake: build the util libraries as shared under Windows

Jose Fonseca jfonseca at vmware.com
Sun Nov 23 03:18:32 PST 2014


On 22/11/14 22:26, Emil Velikov wrote:
> Rather than rebuilding every single test as we change the util
> libraries and increase the size of each test by ~9MiB (as noticed
> in the mingw-w64 build), just revert to shared piglitutil* libs.

This is great. I actually tried to do this, a year ago or so, but I gave 
up half way through trying to overcome "missing symbols". I don't know 
if changes in piglit made this easier or if you found a better solution, 
but I'm happy you worked it out.

> TODO:
>   - Check if the DLLs are installed and where.
>   - If there is one or more executables linking against them, but located
> in a different folder, see the next todo note.
>   - Modify the python scripts to set PATH to the location of the DLLs.
> Alternatively apply any of the other solutions as mentioned here

The solution is to put all .dlls on the bin directory, next to the 
executables.

And I think that the

    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${piglit_BINARY_DIR}/bin)

on piglit's top CMakeLists.txt.

That said, I think I'd like first to get piglit + waffle on windows 
wokring reliably, before DLL'ifying the libraries.  This way I don't 
have to worry about testing with glut.


Patch 1 seems safe however.

Jose


> https://urldefense.proofpoint.com/v2/url?u=http-3A__msdn.microsoft.com_en-2Dus_library_7d83bc18.aspxy&d=AAIDaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=GyXzdF0T86tcgDV01peMuyaqku0wVklpsZ3tVP6wP88&s=59LK-XMoX7wyBTHd0g06gq8UAIQfQHrAQ2VJTW_Yf54&e=
>
> Cc: José Fonseca <jfonseca at vmware.com>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
>   cmake/piglit_util.cmake | 8 ++------
>   1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/cmake/piglit_util.cmake b/cmake/piglit_util.cmake
> index 411fa54..48e89c1 100644
> --- a/cmake/piglit_util.cmake
> +++ b/cmake/piglit_util.cmake
> @@ -77,12 +77,8 @@ endfunction(piglit_add_executable)
>   function(piglit_add_library name)
>
>       list(REMOVE_AT ARGV 0)
> -    if(WIN32)
> -        add_library(${name} STATIC ${ARGV})
> -    else(WIN32)
> -        add_library(${name} SHARED ${ARGV})
> -        install(TARGETS ${name} DESTINATION ${PIGLIT_INSTALL_LIBDIR}/lib)
> -    endif(WIN32)
> +    add_library(${name} SHARED ${ARGV})
> +    install(TARGETS ${name} DESTINATION ${PIGLIT_INSTALL_LIBDIR}/lib)
>       add_dependencies(${name} piglit_dispatch_gen)
>       if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
>           set_target_properties(${name} PROPERTIES SOVERSION "0")
>



More information about the Piglit mailing list