summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauli Nieminen <pauli.nieminen@linux.intel.com>2012-05-19 01:20:08 +0300
committerPauli Nieminen <pauli.nieminen@linux.intel.com>2012-06-04 21:33:57 +0300
commit700c38b09b3163d1d789d778137b939de9c647e2 (patch)
tree39b788f125814b7d267b87fe3c852a95dac0a79d
parent7788efd885539eaf5ee4a49d5a230e3912c7d614 (diff)
make: Make util libraries shared in non-windows systemsshared_piglit_util
Incremental builds take long time linking tests if utilities are modified. The link time can be eliminate if libraries are made shared. Shared libraries need to specify symbols that are excepted to be declared in executeable as weak to allow linking without symbols that aren't used in runtime. Windows has limitation that shared library can't have programs main function that forces windows to use static libraries. Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com> Reviewed-by: Chad Versace <chad.versace@linux.intel.com> Acked-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--cmake/piglit_util.cmake6
-rw-r--r--tests/util/CMakeLists.txt1
-rw-r--r--tests/util/piglit-framework.c14
-rw-r--r--tests/util/piglit-glx-util.c5
4 files changed, 25 insertions, 1 deletions
diff --git a/cmake/piglit_util.cmake b/cmake/piglit_util.cmake
index 0daaad2c..fccbadd5 100644
--- a/cmake/piglit_util.cmake
+++ b/cmake/piglit_util.cmake
@@ -75,7 +75,11 @@ endfunction(piglit_add_executable)
function(piglit_add_library name)
list(REMOVE_AT ARGV 0)
- add_library(${name} ${ARGV})
+ if(WIN32)
+ add_library(${name} ${ARGV})
+ else(WIN32)
+ add_library(${name} SHARED ${ARGV})
+ endif(WIN32)
add_dependencies(${name} piglit_dispatch_gen)
endfunction(piglit_add_library)
diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
index e69127d0..5ebbb819 100644
--- a/tests/util/CMakeLists.txt
+++ b/tests/util/CMakeLists.txt
@@ -26,6 +26,7 @@ if(OPENGL_egl_LIBRARY)
${UTIL_SOURCES}
piglit-util-egl.c
)
+ link_libraries(${OPENGL_egl_LIBRARY})
endif(OPENGL_egl_LIBRARY)
if(USE_WAFFLE)
diff --git a/tests/util/piglit-framework.c b/tests/util/piglit-framework.c
index adbac094..0b43313a 100644
--- a/tests/util/piglit-framework.c
+++ b/tests/util/piglit-framework.c
@@ -46,6 +46,20 @@ unsigned piglit_winsys_fbo = 0;
static int piglit_window;
static enum piglit_result result;
+#ifndef _WIN32
+__attribute__((weak)) int piglit_width = 100;
+__attribute__((weak)) int piglit_height = 100;
+__attribute__((weak)) int piglit_window_mode = GLUT_RGB | GLUT_DOUBLE;
+
+__attribute__((weak)) enum piglit_result piglit_display(void)
+{
+ return PIGLIT_FAIL;
+}
+__attribute__((weak)) void piglit_init(int argc, char **argv)
+{
+}
+#endif
+
static void
display(void)
{
diff --git a/tests/util/piglit-glx-util.c b/tests/util/piglit-glx-util.c
index df54c503..069ea72d 100644
--- a/tests/util/piglit-glx-util.c
+++ b/tests/util/piglit-glx-util.c
@@ -34,6 +34,11 @@
int piglit_automatic;
+#ifndef _WIN32
+__attribute__((weak)) int piglit_width = 100;
+__attribute__((weak)) int piglit_height = 100;
+#endif
+
Display *
piglit_get_glx_display()
{