Skip to content

Commit

Permalink
Add 'librtprocess/' from commit '695c10a335130fc1728cc88f1844ed93bacc…
Browse files Browse the repository at this point in the history
…a744'

git-subtree-dir: librtprocess
git-subtree-mainline: 31a55b4
git-subtree-split: 695c10a
  • Loading branch information
fcomida committed Aug 12, 2019
2 parents 31a55b4 + 695c10a commit e27ca1b
Show file tree
Hide file tree
Showing 49 changed files with 23,703 additions and 0 deletions.
2 changes: 2 additions & 0 deletions librtprocess/.gitignore
@@ -0,0 +1,2 @@
build/*
pkgconfig/rtprocess.pc
32 changes: 32 additions & 0 deletions librtprocess/.travis.yml
@@ -0,0 +1,32 @@
language: generic
os: linux
dist: trusty
compiler: g++
sudo: required
services: docker
env:
- TARGET_PROJECT=RawTherapee

before_script:
- cd /tmp
- git clone https://github.com/${TRAVIS_REPO_SLUG}.git --branch ci --single-branch librtprocess-ci
- cp -a librtprocess-ci/ci-scripts "$TRAVIS_BUILD_DIR"
- cd "$TRAVIS_BUILD_DIR"
- sudo docker run -it -v $(pwd):/sources -e "LIBRT_BRANCH=$TRAVIS_BRANCH" -e "TARGET_PROJECT=$TARGET_PROJECT" centos:7 bash /sources/ci-scripts/build-appimages.sh
after_success:
- cd $TRAVIS_BUILD_DIR
- pwd
- ls -lh
- ls -lh out/* # Assuming you have some files in out/ that you would like to upload
#- wget -c https://github.com/aferrero2707/uploadtool/raw/master/remove.sh
#- TRAVIS_REPO_SLUG="Beep6581/RawTherapee" bash ./remove.sh "nightly" "RawTherapee-${RT_BRANCH}-" ".AppImage"
- wget -c https://github.com/aferrero2707/uploadtool/raw/master/upload_rotate.sh
- bash ./upload_rotate.sh "continuous" out/* >& /dev/null
#- TRAVIS_REPO_SLUG="Beep6581/RawTherapee" bash ./upload_rotate.sh "nightly" out/* >& /dev/null
#- TRAVIS_REPO_SLUG="Beep6581/RawTherapee" bash ./upload_rotate.sh "nightly" $TRAVIS_BUILD_DIR/RawTherapee/commit-${RT_BRANCH}.hash >& /dev/null

branches:
except:
- # Do not build tags that we create when we upload to GitHub Releases
- /^(?i:continuous)$/

72 changes: 72 additions & 0 deletions librtprocess/CMakeLists.txt
@@ -0,0 +1,72 @@
# Required cmake version
cmake_minimum_required(VERSION 3.5.0)
cmake_policy(SET CMP0048 NEW)

if (NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
endif()
# Specify search path for CMake modules to be loaded by include()
# and find_package()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")

### Add defaults for cmake
# These defaults need to be included before the project() call.
include(DefineCMakeDefaults)

# This will provide -DCMAKE_BUILD_TYPE=Profiling
# and -DCMAKE_BUILD_TYPE=AddressSanitizer
include(DefineCompilerFlags)

project(rtprocess VERSION 0.11.0 LANGUAGES CXX)

# include cmake files
include(DefineOptions.cmake)
include(CompilerChecks.cmake)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
include(CPackConfig.cmake)

# By default we don't use a specific processor target, so PROC_TARGET_NUMBER is set to 0.
# Specify other values to optimize for specific processor architecture as listed in ProcessorTargets.cmake:
set(PROC_TARGET_NUMBER 0 CACHE STRING "Selected target processor from the list taken from ProcessorTargets.cmake")
# Loads the ProcessorTargets list:
include(ProcessorTargets.cmake)
set(PROC_FLAGS "" CACHE STRING "Target processor related build/link flags")
if(NOT(PROC_TARGET_NUMBER EQUAL 0))
set(PROC_FLAGS ${PROC_TARGET_${PROC_TARGET_NUMBER}_FLAGS})
endif()

add_subdirectory(src)
add_subdirectory(pkgconfig)

# cmake config files
if (WIN32)
set(RTPROCESS_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX})
else()
set(RTPROCESS_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()

set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE INTERNAL "")
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE INTERNAL "")
configure_package_config_file(${PROJECT_NAME}-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
PATH_VARS
INCLUDE_INSTALL_DIR LIB_INSTALL_DIR
INSTALL_DESTINATION
${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})

write_basic_package_version_file(${PROJECT_NAME}-config-version.cmake
COMPATIBILITY
AnyNewerVersion)

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
DESTINATION
${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT
devel)

# Add 'make dist' target which makes sure to invoke cmake before
add_custom_target(dist
COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
49 changes: 49 additions & 0 deletions librtprocess/CPackConfig.cmake
@@ -0,0 +1,49 @@
# For help take a look at:
# http://www.cmake.org/Wiki/CMake:CPackConfiguration

### general settings
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A project to make RawTherapee's processing algorithms more readily available.")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_VENDOR "RawTherapee")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")


### versions
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})


### source generator
set(CPACK_SOURCE_GENERATOR "TXZ")
set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/obj*;tags;cscope.*;.ycm_extra_conf.pyc")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")

if (WIN32)
set(CPACK_GENERATOR "ZIP")

### nsis generator
find_package(NSIS)
if (NSIS_MAKE)
set(CPACK_GENERATOR "${CPACK_GENERATOR};NSIS")
set(CPACK_NSIS_DISPLAY_NAME "CMocka")
set(CPACK_NSIS_COMPRESSOR "/SOLID zlib")
set(CPACK_NSIS_MENU_LINKS "https://github.com/CarVac/librtprocess" "librtprocess homepage")
endif (NSIS_MAKE)
endif (WIN32)

set(CPACK_PACKAGE_INSTALL_DIRECTORY "rtprocess")

set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME}-${CPACK_PACKAGE_VERSION})

set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers")
set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION
"Libraries used to build programs which use rtprocess")
set(CPACK_COMPONENT_HEADERS_DESCRIPTION
"C/C++ header files for use with rtprocess")
set(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
set(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
set(CPACK_COMPONENT_HEADERS_GROUP "Development")

include(CPack)
90 changes: 90 additions & 0 deletions librtprocess/CompilerChecks.cmake
@@ -0,0 +1,90 @@
include(AddCXXCompilerFlag)
include(CheckCXXCompilerFlagSSP)

if (UNIX OR WIN32)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_cxx_compiler_flag("-Wall" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wextra" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wshadow" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wwrite-strings" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=write-strings" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wpointer-arith" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=pointer-arith" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wreturn-type" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=return-type" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wuninitialized" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=uninitialized" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wimplicit-fallthrough" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=strict-overflow" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wstrict-overflow=2" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wno-format-zero-length" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wmissing-field-initializers" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wunused-label" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=unused-label" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-ftree-vectorize" SUPPORTED_CXX_COMPILER_FLAGS)
if(OPTION_OMP)
add_cxx_compiler_flag("-Werror=unknown-pragmas" SUPPORTED_CXX_COMPILER_FLAGS)
endif()

endif()

if (UNIX)
##################### CXX ########################


#
# Check for -Werror turned on if possible
#
# This will prevent that compiler flags are detected incorrectly.
#
check_cxx_compiler_flag("-Werror" REQUIRED_FLAGS_WERROR)
if (REQUIRED_FLAGS_WERROR)
set(CMAKE_REQUIRED_FLAGS "-Werror")

if (PICKY_DEVELOPER)
list(APPEND SUPPORTED_CXX_COMPILER_FLAGS "-Werror")
endif()
endif()


check_cxx_compiler_flag("-Wformat" REQUIRED_FLAGS_WFORMAT)
if (REQUIRED_FLAGS_WFORMAT)
list(APPEND SUPPORTED_CXX_COMPILER_FLAGS "-Wformat")
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wformat")
endif()
add_cxx_compiler_flag("-Wformat-security" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Werror=format-security" SUPPORTED_CXX_COMPILER_FLAGS)

check_cxx_compiler_flag_ssp("-fstack-protector-strong" WITH_STACK_PROTECTOR_STRONG)
if (WITH_STACK_PROTECTOR_STRONG)
list(APPEND SUPPORTED_CXX_COMPILER_FLAGS "-fstack-protector-strong")
else (WITH_STACK_PROTECTOR_STRONG)
check_cxx_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
if (WITH_STACK_PROTECTOR)
list(APPEND SUPPORTED_CXX_COMPILER_FLAGS "-fstack-protector")
# This is needed as Solaris has a seperate libssp
if (SOLARIS)
list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector")
endif()
endif()
endif (WITH_STACK_PROTECTOR_STRONG)

check_cxx_compiler_flag_ssp("-fstack-clash-protection" WITH_STACK_CLASH_PROTECTION)
if (WITH_STACK_CLASH_PROTECTION)
list(APPEND SUPPORTED_CXX_COMPILER_FLAGS "-fstack-clash-protection")
endif()

if (PICKY_DEVELOPER)
add_cxx_compiler_flag("-Wno-error=deprecated-declarations" SUPPORTED_CXX_COMPILER_FLAGS)
add_cxx_compiler_flag("-Wno-error=tautological-compare" SUPPORTED_CXX_COMPILER_FLAGS)
endif()

# Unset CMAKE_REQUIRED_FLAGS
unset(CMAKE_REQUIRED_FLAGS)
endif()

set(DEFAULT_CXX_COMPILE_FLAGS ${SUPPORTED_CXX_COMPILER_FLAGS} CACHE INTERNAL "Default CXX Compiler Flags" FORCE)
set(DEFAULT_LINK_FLAGS ${SUPPORTED_LINKER_FLAGS} CACHE INTERNAL "Default Linker Flags" FORCE)
4 changes: 4 additions & 0 deletions librtprocess/DefineOptions.cmake
@@ -0,0 +1,4 @@
option(OPTION_OMP "Build with OpenMP support" ON)
option(VERBOSE "Build in verbose mode" OFF)
option(PICKY_DEVELOPER "Build with picky developer flags" OFF)
option(WITH_STATIC_LIB "Build with a static library" OFF)

0 comments on commit e27ca1b

Please sign in to comment.