X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2FCMakeLists.txt;h=cc9a23cdb91859c2bc1513317bfc83a55ae5e12f;hb=9ed88f6a8de45fdb2fba0b6544dce25f949b36ed;hp=bd3dcbc517cd71467a1316161955b91178c63444;hpb=61e353d652275d94e896e70cf5e6d2d193688d9f;p=openjpeg.git diff --git a/libopenjpeg/CMakeLists.txt b/libopenjpeg/CMakeLists.txt index bd3dcbc5..cc9a23cd 100644 --- a/libopenjpeg/CMakeLists.txt +++ b/libopenjpeg/CMakeLists.txt @@ -1,37 +1,82 @@ INCLUDE_REGULAR_EXPRESSION("^.*$") # Defines the source code for the library -SET(openjpeg_SRCS - bio.c - cio.c - dwt.c - event.c - fix.c - image.c - int.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_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/bio.c + ${CMAKE_CURRENT_SOURCE_DIR}/cio.c + ${CMAKE_CURRENT_SOURCE_DIR}/dwt.c + ${CMAKE_CURRENT_SOURCE_DIR}/event.c + ${CMAKE_CURRENT_SOURCE_DIR}/image.c + ${CMAKE_CURRENT_SOURCE_DIR}/j2k.c + ${CMAKE_CURRENT_SOURCE_DIR}/j2k_lib.c + ${CMAKE_CURRENT_SOURCE_DIR}/jp2.c + ${CMAKE_CURRENT_SOURCE_DIR}/jpt.c + ${CMAKE_CURRENT_SOURCE_DIR}/mct.c + ${CMAKE_CURRENT_SOURCE_DIR}/mqc.c + ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg.c + ${CMAKE_CURRENT_SOURCE_DIR}/pi.c + ${CMAKE_CURRENT_SOURCE_DIR}/raw.c + ${CMAKE_CURRENT_SOURCE_DIR}/t1.c + ${CMAKE_CURRENT_SOURCE_DIR}/t2.c + ${CMAKE_CURRENT_SOURCE_DIR}/tcd.c + ${CMAKE_CURRENT_SOURCE_DIR}/tgt.c + ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/phix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/ppix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/thix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/tpix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/function_list.c ) -# Handle the dllimport/dllexport for building shared lib on Win32 -IF (WIN32) - IF (BUILD_SHARED_LIBS) - ADD_DEFINITIONS(-DOPJ_SHARED) - ELSE (BUILD_SHARED_LIBS) +# Build the library +IF(WIN32) + IF(BUILD_SHARED_LIBS) + ADD_DEFINITIONS(-DOPJ_EXPORTS) + ELSE(BUILD_SHARED_LIBS) ADD_DEFINITIONS(-DOPJ_STATIC) - ENDIF (BUILD_SHARED_LIBS) -ENDIF (WIN32) + ENDIF(BUILD_SHARED_LIBS) +ENDIF(WIN32) +ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS}) +IF(UNIX) + TARGET_LINK_LIBRARIES(${OPENJPEG_LIBRARY_NAME} m) +ENDIF(UNIX) +SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES}) -# Create the library -ADD_LIBRARY(${OPJ_PREFIX}openjpeg ${openjpeg_SRCS}) +# Build the JPWL library ? +IF(BUILD_JPWL) + ADD_SUBDIRECTORY(jpwl) +ENDIF(BUILD_JPWL) +# Install library +INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME} + EXPORT OpenJPEGTargets + RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications + LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries + ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries +) + +# Install includes files +INSTALL(FILES openjpeg.h opj_stdint.h + DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers +) + +# install man page of the library +INSTALL( + FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3 + DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3) + +# Experimental option; let's how cppcheck performs +# Implementation details: +# I could not figure out how to easily upload a file to CDash. Instead simply +# pretend cppcheck is part of the Build step. Technically cppcheck can even +# output gcc formatted error/warning report +# Another implementation detail: I could not redirect error to the error +# catching mechanism something is busted in cmake 2.8.5, I had to use the +# warning regex to catch them. +if(OPENJPEG_CPPCHECK) + find_package(CPPCHECK REQUIRED) + foreach(f ${OPENJPEG_SRCS}) + # cppcheck complains about too many configuration, pretend to be WIN32: + add_custom_command(TARGET ${OPENJPEG_LIBRARY_NAME} + COMMAND ${CPPCHECK_EXECUTABLE} -DWIN32 ${f}) + endforeach() +endif()