X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=CMakeLists.txt;h=06f7a5e10898b36b6074e489797f3e2b42087968;hb=96329f59ab4c68068a47832ef60b76fe8be6253e;hp=443bb88c57faf9cd1e5f572facf92a5032eceeb5;hpb=20f35e03712f58ec4dd51508f3874b3685738aa9;p=apitrace diff --git a/CMakeLists.txt b/CMakeLists.txt index 443bb88..06f7a5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,13 +12,22 @@ if (NOT CMAKE_BUILD_TYPE) FORCE) endif (NOT CMAKE_BUILD_TYPE) +set (CMAKE_USE_PYTHON_VERSION 2.6) + find_package (PythonInterp REQUIRED) find_package (OpenGL REQUIRED) -find_package (ZLIB) - -find_package (DirectX) - -find_package (GLUT) +find_package (Qt4 COMPONENTS QtCore QtGui QtWebKit) +find_package (QJSON) + +if (NOT WIN32) + # Always use the bundled zlib and libpng sources on Windows to make it easy + # to deploy the wrappers DLLs + find_package (ZLIB) + find_package (PNG) + find_package (X11 REQUIRED) +else (NOT WIN32) + find_package (DirectX) +endif (NOT WIN32) if (WIN32) # MSVC & MinGW only define & use APIENTRY @@ -57,7 +66,10 @@ else () endif () # Use bundled ZLIB if system one can't be found -if (NOT ZLIB_FOUND) +if (ZLIB_FOUND) + include_directories (${ZLIB_INCLUDE_DIRS}) + link_libraries (${ZLIB_LIBRARIES}) +else (ZLIB_FOUND) add_library (zlib STATIC zlib/adler32.c zlib/compress.c @@ -72,16 +84,45 @@ if (NOT ZLIB_FOUND) zlib/inftrees.c zlib/inffast.c ) - include_directories (zlib) link_libraries (zlib) -else (NOT ZLIB_FOUND) - include_directories (${ZLIB_INCLUDE_DIRS}) - link_libraries (${ZLIB_LIBRARIES}) -endif (NOT ZLIB_FOUND) +endif (ZLIB_FOUND) + +# Use bundled LIBPNG if system one can't be found +if (PNG_FOUND) + include_directories (${PNG_INCLUDE_DIR}) + add_definitions (${PNG_DEFINITIONS}) + link_libraries (${PNG_LIBRARIES}) +else (PNG_FOUND) + add_library (png STATIC + libpng/png.c + libpng/pngerror.c + libpng/pngget.c + libpng/pngmem.c + libpng/pngpread.c + libpng/pngread.c + libpng/pngrio.c + libpng/pngrtran.c + libpng/pngrutil.c + libpng/pngset.c + libpng/pngtrans.c + libpng/pngwio.c + libpng/pngwrite.c + libpng/pngwtran.c + libpng/pngwutil.c + ) + include_directories (libpng) + link_libraries (png) +endif (PNG_FOUND) include_directories (${CMAKE_CURRENT_SOURCE_DIR}) +add_custom_command ( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glproc.py > ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp + DEPENDS glproc.py dispatch.py wglapi.py glxapi.py glapi.py glenum.py stdapi.py +) + if (WIN32) # Put wrappers in a separate directory set (LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/wrappers) @@ -126,64 +167,87 @@ if (WIN32) add_custom_command ( OUTPUT wgltrace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wgltrace.py > ${CMAKE_CURRENT_BINARY_DIR}/wgltrace.cpp - DEPENDS wgltrace.py trace.py wglapi.py glapi.py glenum.py winapi.py stdapi.py + DEPENDS wgltrace.py gltrace.py trace.py wglapi.py wglenum.py glapi.py glenum.py winapi.py stdapi.py ) - add_library (opengl SHARED opengl32.def wgltrace.cpp trace_write.cpp os_win32.cpp) + add_library (opengl SHARED opengl32.def wgltrace.cpp trace_write.cpp os_win32.cpp ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp) set_target_properties (opengl PROPERTIES PREFIX "" OUTPUT_NAME opengl32) if (MINGW) - SET_TARGET_PROPERTIES(opengl PROPERTIES LINK_FLAGS "-Wl,--enable-stdcall-fixup ${CMAKE_CURRENT_SOURCE_DIR}/opengl32.def") + set_target_properties(opengl PROPERTIES LINK_FLAGS "-Wl,--enable-stdcall-fixup ${CMAKE_CURRENT_SOURCE_DIR}/opengl32.def") endif (MINGW) else () + include_directories (${X11_INCLUDE_DIR}) # libGL.so add_custom_command ( OUTPUT glxtrace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glxtrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glxtrace.cpp - DEPENDS glxtrace.py trace.py glxapi.py glapi.py glenum.py stdapi.py + DEPENDS glxtrace.py gltrace.py trace.py glxapi.py glapi.py glenum.py stdapi.py ) - add_library (glxtrace SHARED glxtrace.cpp trace_write.cpp os_posix.cpp) - set_target_properties (glxtrace PROPERTIES PREFIX "") + add_library (glxtrace SHARED glxtrace.cpp trace_write.cpp os_posix.cpp ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp) target_link_libraries (glxtrace dl) endif () -add_executable (dump dump.cpp trace_model.cpp) - if (WIN32) set (os os_win32.cpp) + set (glws glws_wgl.cpp) else (WIN32) set (os os_posix.cpp) + set (glws glws_glx.cpp) endif (WIN32) -if (GLUT_INCLUDE_DIR) - add_custom_command ( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glproc.py > ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp - DEPENDS glproc.py wglapi.py glxapi.py glapi.py glenum.py stdapi.py - ) - - add_custom_command ( - OUTPUT glretrace.cpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glretrace.cpp - DEPENDS glretrace.py retrace.py codegen.py glapi.py glenum.py stdapi.py - ) - - include_directories ( - ${CMAKE_CURRENT_BINARY_DIR} - ${OPENGL_INCLUDE_PATH} - ${GLUT_INCLUDE_DIR} - ) - - add_executable (glretrace glretrace.cpp trace_model.cpp image.cpp ${os} ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp) - - target_link_libraries (glretrace - ${OPENGL_gl_LIBRARY} - ${OPENGL_glu_LIBRARY} - ${GLUT_glut_LIBRARY} - ) -endif (GLUT_INCLUDE_DIR) - - +add_library (trace trace_model.cpp trace_parser.cpp ${os}) + +add_executable (dump dump.cpp) +target_link_libraries (dump trace) + +add_custom_command ( + OUTPUT glretrace_gl.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glretrace_gl.cpp + DEPENDS glretrace.py retrace.py codegen.py glapi.py glenum.py stdapi.py +) + +add_custom_command ( + OUTPUT glretrace_state.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glstate.py > ${CMAKE_CURRENT_BINARY_DIR}/glretrace_state.cpp + DEPENDS glstate.py glenum.py stdapi.py +) + +include_directories ( + ${CMAKE_CURRENT_BINARY_DIR} + ${OPENGL_INCLUDE_PATH} +) + +add_executable (glretrace + glretrace_gl.cpp + glretrace_main.cpp + glretrace_state.cpp + retrace.cpp + ${glws} + image.cpp + ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp +) + +set_property ( + TARGET glretrace + APPEND + PROPERTY COMPILE_DEFINITIONS "RETRACE" +) + +target_link_libraries (glretrace + trace + ${OPENGL_gl_LIBRARY} + ${OPENGL_glu_LIBRARY} + ${X11_LIBRARIES} +) + +if (NOT WIN32) + target_link_libraries (glretrace ${X11_LIBRARIES}) +endif (NOT WIN32) + +if (QT4_FOUND AND QJSON_FOUND) + add_subdirectory(gui) +endif (QT4_FOUND AND QJSON_FOUND)