From a57ac5a9549724c6542cf574923aea9f23427d0c Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Fri, 23 Dec 2011 23:23:55 +0100 Subject: [PATCH] Make OpenJPEG respect our build settings --- indra/cmake/00-Common.cmake | 68 ++++-------- indra/libopenjpeg/CMakeLists.txt | 171 +++++++++++++++---------------- 2 files changed, 103 insertions(+), 136 deletions(-) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 916878ec3..f41eff069 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -113,7 +113,7 @@ if (WINDOWS) endif (WINDOWS) -set (GCC_EXTRA_OPTIMIZATION "-ffast-math -frounding-math") +set (GCC_EXTRA_OPTIMIZATIONS "-ffast-math -frounding-math") if (LINUX) set(CMAKE_SKIP_RPATH TRUE) @@ -182,53 +182,29 @@ if (LINUX) -pthread ) - if (SERVER) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth-60") - if (EXISTS /etc/debian_version) - FILE(READ /etc/debian_version DEBIAN_VERSION) - else (EXISTS /etc/debian_version) - set(DEBIAN_VERSION "") - endif (EXISTS /etc/debian_version) - - if (NOT DEBIAN_VERSION STREQUAL "3.1") - add_definitions(-DCTYPE_WORKAROUND) - endif (NOT DEBIAN_VERSION STREQUAL "3.1") - - if (EXISTS /usr/lib/mysql4/mysql) - link_directories(/usr/lib/mysql4/mysql) - endif (EXISTS /usr/lib/mysql4/mysql) - - add_definitions( - -msse2 - -mfpmath=sse - ) - endif (SERVER) - - if (VIEWER) - add_definitions(-DAPPID=secondlife) - add_definitions(-fvisibility=hidden) - # don't catch SIGCHLD in our base application class for the viewer - some of our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The viewer doesn't need to catch SIGCHLD anyway. - add_definitions(-DLL_IGNORE_SIGCHLD) + add_definitions(-DAPPID=secondlife) + add_definitions(-fvisibility=hidden) + # don't catch SIGCHLD in our base application class for the viewer - some of our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The viewer doesn't need to catch SIGCHLD anyway. + add_definitions(-DLL_IGNORE_SIGCHLD) + if (NOT STANDALONE) + # this stops us requiring a really recent glibc at runtime + add_definitions(-fno-stack-protector) + endif (NOT STANDALONE) + if (${ARCH} STREQUAL "x86_64") + add_definitions(-DLINUX64=1 -pipe) + set(CMAKE_CXX_FLAGS_RELEASESSE2 "${CMAKE_CXX_FLAGS_RELEASESSE2} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") + set(CMAKE_C_FLAGS_RELEASESSE2 "${CMAKE_C_FLAGS_RELEASESSE2} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") + else (${ARCH} STREQUAL "x86_64") if (NOT STANDALONE) - # this stops us requiring a really recent glibc at runtime - add_definitions(-fno-stack-protector) + set(MARCH_FLAG " -march=pentium4") endif (NOT STANDALONE) - if (${ARCH} STREQUAL "x86_64") - add_definitions(-DLINUX64=1 -pipe) - set(CMAKE_CXX_FLAGS_RELEASESSE2 "${CMAKE_CXX_FLAGS_RELEASESSE2} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") - set(CMAKE_C_FLAGS_RELEASESSE2 "${CMAKE_C_FLAGS_RELEASESSE2} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") - else (${ARCH} STREQUAL "x86_64") - if (NOT STANDALONE) - set(MARCH_FLAG " -march=pentium4") - endif (NOT STANDALONE) - set(CMAKE_CXX_FLAGS_RELEASESSE2 "${CMAKE_CXX_FLAGS_RELEASESSE2}${MARCH_FLAG} -mfpmath=sse -msse2 ${GCC_EXTRA_OPTIMIZATIONS}") - set(CMAKE_C_FLAGS_RELEASESSE2 "${CMAKE_C_FLAGS_RELEASESSE2}${MARCH_FLAG} -mfpmath=sse -msse2 "${GCC_EXTRA_OPTIMIZATIONS}) - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}${MARCH_FLAG} -mfpmath=sse -msse2 ${GCC_EXTRA_OPTIMIZATIONS}") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}${MARCH_FLAG} -mfpmath=sse -msse2 "${GCC_EXTRA_OPTIMIZATIONS}) - endif (${ARCH} STREQUAL "x86_64") - endif (VIEWER) + set(CMAKE_CXX_FLAGS_RELEASESSE2 "${CMAKE_CXX_FLAGS_RELEASESSE2}${MARCH_FLAG} -mfpmath=sse -msse2 ${GCC_EXTRA_OPTIMIZATIONS}") + set(CMAKE_C_FLAGS_RELEASESSE2 "${CMAKE_C_FLAGS_RELEASESSE2}${MARCH_FLAG} -mfpmath=sse -msse2 "${GCC_EXTRA_OPTIMIZATIONS}) + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}${MARCH_FLAG} -mfpmath=sse -msse2 ${GCC_EXTRA_OPTIMIZATIONS}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}${MARCH_FLAG} -mfpmath=sse -msse2 ${GCC_EXTRA_OPTIMIZATIONS}") + endif (${ARCH} STREQUAL "x86_64") set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG} -msse2") set(CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS_RELEASE}") diff --git a/indra/libopenjpeg/CMakeLists.txt b/indra/libopenjpeg/CMakeLists.txt index e0ac82fac..02b4c65ed 100644 --- a/indra/libopenjpeg/CMakeLists.txt +++ b/indra/libopenjpeg/CMakeLists.txt @@ -1,105 +1,96 @@ -# Main CMakeLists.txt to build the OpenJPEG project using CMake (www.cmake.org) -# Written by Mathieu Malaterre +# -*- cmake -*- -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +project(openjpeg) -IF(COMMAND CMAKE_POLICY) - CMAKE_POLICY(SET CMP0003 NEW) -ENDIF(COMMAND CMAKE_POLICY) +include(00-Common) -PROJECT(openjpeg) -# Do full dependency headers. -INCLUDE_REGULAR_EXPRESSION("^.*$") - -#----------------------------------------------------------------------------- # OPENJPEG version number, useful for packaging and doxygen doc: -SET(OPENJPEG_VERSION_MAJOR 1) -SET(OPENJPEG_VERSION_MINOR 4) -SET(OPENJPEG_VERSION_BUILD 0) -SET(OPENJPEG_VERSION +set(OPENJPEG_VERSION_MAJOR 1) +set(OPENJPEG_VERSION_MINOR 4) +set(OPENJPEG_VERSION_BUILD 0) +set(OPENJPEG_VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}") +set(openjpeg_SOURCE_FILES + bio.c + cio.c + dwt.c + event.c + image.c + j2k.c + j2k_lib.c + jp2.c + jpt.c + mct.c + mqc.c + openjpeg.c + pi.c + raw.c + t1.c + t2.c + tcd.c + tgt.c +) + +set(openjpeg_HEADER_FILES + bio.h + cio.h + dwt.h + event.h + fix.h + image.h + int.h + j2k.h + j2k_lib.h + jp2.h + jpt.h + mct.h + mqc.h + openjpeg.h + opj_includes.h + opj_malloc.h + pi.h + raw.h + t1.h + t1_luts.h + t2.h + tcd.h + tgt.h +) + +IF(WINDOWS) + # On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security warnings + add_definitions( + -d_crt_far_mappings_no_deprecate + -d_crt_is_wctype_no_deprecate + -d_crt_managed_fp_no_deprecate + -d_crt_nonstdc_no_deprecate + -d_crt_secure_no_deprecate + -d_crt_secure_no_deprecate_globals + -d_crt_seterrormode_beep_sleep_no_deprecate + -d_crt_time_functions_no_deprecate + -d_crt_vcclrit_no_deprecate + -d_scl_secure_no_deprecate + ) + add_definitions(-DOPJ_STATIC) +ENDIF(WINDOWS) + + +set_source_files_properties(${openjpeg_HEADER_FILES} + PROPERTIES HEADER_FILE_ONLY TRUE) + +list(APPEND openjpeg_SOURCE_FILES ${openjpeg_HEADER_FILES}) + +add_library (openjpeg ${openjpeg_SOURCE_FILES}) + # This setting of SOVERSION assumes that any API change # will increment either the minor or major version number of openjpeg -SET(OPENJPEG_LIBRARY_PROPERTIES +set(OPENJPEG_LIBRARY_PROPERTIES VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}" SOVERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}" ) -# On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security -# warnings -IF(WIN32) - IF(NOT BORLAND) - IF(NOT CYGWIN) - IF(NOT MINGW) - IF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS) - ADD_DEFINITIONS( - -D_CRT_FAR_MAPPINGS_NO_DEPRECATE - -D_CRT_IS_WCTYPE_NO_DEPRECATE - -D_CRT_MANAGED_FP_NO_DEPRECATE - -D_CRT_NONSTDC_NO_DEPRECATE - -D_CRT_SECURE_NO_DEPRECATE - -D_CRT_SECURE_NO_DEPRECATE_GLOBALS - -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE - -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE - -D_CRT_VCCLRIT_NO_DEPRECATE - -D_SCL_SECURE_NO_DEPRECATE - ) - ENDIF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS) - ENDIF(NOT MINGW) - ENDIF(NOT CYGWIN) - ENDIF(NOT BORLAND) -ENDIF(WIN32) - - -#----------------------------------------------------------------------------- -# Test for some required system information. -# INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake) - -#----------------------------------------------------------------------------- -# Compiler specific flags: -IF(CMAKE_COMPILER_IS_GNUCC) - # For all builds, make sure openjpeg is std99 compliant: - # SET(CMAKE_C_FLAGS "-Wall -std=c99 ${CMAKE_C_FLAGS}") # FIXME: this setting prevented us from setting a coverage build. - # Do not use ffast-math for all build, it would produce incorrect results, only set for release: - SET(CMAKE_C_FLAGS_RELEASE "-ffast-math ${CMAKE_C_FLAGS_RELEASE}") -ENDIF(CMAKE_COMPILER_IS_GNUCC) - -# Defines the source code for the library -SET(OPENJPEG_SRCS - bio.c - cio.c - dwt.c - event.c - image.c - j2k.c - j2k_lib.c - jp2.c - jpt.c - mct.c - mqc.c - openjpeg.c - pi.c - raw.c - t1.c - t2.c - tcd.c - tgt.c -) - -# Pass proper definition to preprocessor to generate shared lib -IF(WIN32) - IF(BUILD_SHARED_LIBS) - ADD_DEFINITIONS(-DOPJ_EXPORTS) - ELSE(BUILD_SHARED_LIBS) - ADD_DEFINITIONS(-DOPJ_STATIC) - ENDIF(BUILD_SHARED_LIBS) -ENDIF(WIN32) - -# Create the library -ADD_LIBRARY(openjpeg ${OPENJPEG_SRCS}) -SET_TARGET_PROPERTIES(openjpeg PROPERTIES +set_target_properties(openjpeg PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES}) -