Skip to content

Commit

Permalink
lensfun: Update
Browse files Browse the repository at this point in the history
Fixes #542.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
  • Loading branch information
TimothyGu committed Oct 22, 2014
1 parent 168f00c commit 94d5345
Show file tree
Hide file tree
Showing 6 changed files with 271 additions and 138 deletions.
231 changes: 231 additions & 0 deletions src/lensfun-1-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
This file is part of MXE.
See index.html for further information.

From fd0f1a46e5220cb13c5b445b9447f2fbc26ff7eb Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Tue, 21 Oct 2014 18:24:56 -0700
Subject: [PATCH 1/3] build system: Detect POSIX regex lib more properly

Previously, if the regex lib has to be linked separately, as in the case
of MinGW/libgnurx, it is not detected properly, and build fails for shared
lib.

The imported FindRegex.cmake file is from
https://raw.githubusercontent.com/dubourg/openturns/master/cmake/FindRegex.cmake
and is licensed under the LGPL 3, same as this library.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8416fe6..bbdf75a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,16 +16,18 @@ SET(VERSION_BUGFIX 0)

# check if some include are available
INCLUDE(CheckIncludeFiles)
-CHECK_INCLUDE_FILES(regex.h HAVE_REGEX_H)
+FIND_PACKAGE(Regex)
CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)

# set include directories
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/lensfun)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/auxfun)
-IF(NOT HAVE_REGEX_H)
+IF(NOT REGEX_FOUND)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/regex)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libs/regex)
+ELSE()
+ INCLUDE_DIRECTORIES(${REGEX_INCLUDE_DIR})
ENDIF()

# options controlling the build process
@@ -153,7 +155,7 @@ ENDIF()

# install include files
INSTALL(FILES ${CMAKE_BINARY_DIR}/lensfun.h DESTINATION ${INCLUDEDIR}/lensfun)
-IF(NOT HAVE_REGEX_H)
+IF(NOT REGEX_FOUND)
INSTALL(FILES include/regex/regex.h DESTINATION ${INCLUDEDIR}/regex)
ENDIF()
IF(BUILD_AUXFUN)
diff --git a/build/CMakeModules/FindRegex.cmake b/build/CMakeModules/FindRegex.cmake
new file mode 100644
index 0000000..cae186f
--- /dev/null
+++ b/build/CMakeModules/FindRegex.cmake
@@ -0,0 +1,64 @@
+# -*- cmake -*-
+#
+# FindRegex.cmake: Try to find Regex
+#
+# Copyright (C) 2005-2014 Airbus-EDF-Phimeca
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# along with this library. If not, see <http://www.gnu.org/licenses/>.
+#
+# @author dutka
+# @date 2010-02-04 16:44:49 +0100 (Thu, 04 Feb 2010)
+#
+#
+# - Try to find Regex
+# Once done this will define
+#
+# REGEX_FOUND - System has Regex
+# REGEX_INCLUDE_DIR - The Regex include directory
+# REGEX_LIBRARIES - The libraries needed to use Regex
+# REGEX_DEFINITIONS - Compiler switches required for using Regex
+
+IF (REGEX_INCLUDE_DIR AND REGEX_LIBRARIES)
+ # in cache already
+ SET(Regex_FIND_QUIETLY TRUE)
+ENDIF (REGEX_INCLUDE_DIR AND REGEX_LIBRARIES)
+
+#IF (NOT WIN32)
+# # use pkg-config to get the directories and then use these values
+# # in the FIND_PATH() and FIND_LIBRARY() calls
+# FIND_PACKAGE(PkgConfig)
+# PKG_CHECK_MODULES(PC_REGEX regex)
+# SET(REGEX_DEFINITIONS ${PC_REGEX_CFLAGS_OTHER})
+#ENDIF (NOT WIN32)
+
+FIND_PATH(REGEX_INCLUDE_DIR regex.h
+ HINTS
+ ${REGEX_INCLUDEDIR}
+ ${PC_LIBXML_INCLUDE_DIRS}
+ PATH_SUFFIXES regex
+ )
+
+FIND_LIBRARY(REGEX_LIBRARIES NAMES gnurx c regex
+ HINTS
+ ${PC_REGEX_LIBDIR}
+ ${PC_REGEX_LIBRARY_DIRS}
+ )
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+# handle the QUIETLY and REQUIRED arguments and set REGEX_FOUND to TRUE if
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Regex DEFAULT_MSG REGEX_LIBRARIES REGEX_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(REGEX_INCLUDE_DIR REGEX_LIBRARIES)
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
index 9e210f3..ab6ce9a 100644
--- a/libs/CMakeLists.txt
+++ b/libs/CMakeLists.txt
@@ -1,4 +1,4 @@
-IF(NOT HAVE_REGEX_H)
+IF(NOT REGEX_FOUND)
ADD_SUBDIRECTORY(regex)
ENDIF()

diff --git a/libs/lensfun/CMakeLists.txt b/libs/lensfun/CMakeLists.txt
index 7eaadcc..23262f5 100644
--- a/libs/lensfun/CMakeLists.txt
+++ b/libs/lensfun/CMakeLists.txt
@@ -17,8 +17,10 @@ ELSE()
ENDIF()
SET_TARGET_PROPERTIES(lensfun PROPERTIES SOVERSION "${VERSION_MAJOR}" VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}")

-IF(NOT HAVE_REGEX_H)
+IF(NOT REGEX_FOUND)
TARGET_LINK_LIBRARIES(lensfun tre_regex)
+ELSE()
+ TARGET_LINK_LIBRARIES(lensfun ${REGEX_LIBRARIES})
ENDIF()
TARGET_LINK_LIBRARIES(lensfun ${GLIB2_LIBRARIES})

diff --git a/libs/lensfun/lensfun.pc.cmake b/libs/lensfun/lensfun.pc.cmake
index 6d14b12..5f91d44 100644
--- a/libs/lensfun/lensfun.pc.cmake
+++ b/libs/lensfun/lensfun.pc.cmake
@@ -10,4 +10,5 @@ Description: A photographic lens database and access library
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_MICRO@.@VERSION_BUGFIX@
Requires.private: glib-2.0
Libs: -L${libdir} -llensfun
+Libs.private: @REGEX_LIBRARIES@
Cflags: -I${includedir} -I${includedir}/lensfun
diff --git a/libs/regex/CMakeLists.txt b/libs/regex/CMakeLists.txt
index 27bc6c6..bcddcf0 100644
--- a/libs/regex/CMakeLists.txt
+++ b/libs/regex/CMakeLists.txt
@@ -1,5 +1,5 @@
# build regex library
-IF(NOT HAVE_REGEX_H)
+IF(NOT REGEX_FOUND)
FILE(GLOB REGEX_SRC *.c *.h)
LIST(APPEND REGEX_SRC ../../include/regex/regex.h)
ADD_LIBRARY(tre_regex STATIC ${REGEX_SRC})
--
1.9.1


From bed1d4d5ed265083b340aed398403cbaba46e340 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Tue, 21 Oct 2014 18:36:15 -0700
Subject: [PATCH 2/3] Only install glib DLL on MSVC

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbdf75a..7690630 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -172,7 +172,7 @@ IF(BUILD_DOC)
ADD_SUBDIRECTORY(docs)
ENDIF()

-IF(WIN32 AND NOT BUILD_STATIC)
+IF(MSVC AND NOT BUILD_STATIC)
FIND_FILE(GLIB2_DLL
NAMES glib-2.dll glib-2-vs9.dll
PATHS "${GLIB2_BASE_DIR}/bin"
--
1.9.1


From ccdd4f111b4c45bd654531650e4cdb25fdd38b6c Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Tue, 21 Oct 2014 18:41:09 -0700
Subject: [PATCH 3/3] Add option whether or not to install into source tree on
WIN32

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7690630..ef8cf65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,9 @@ OPTION(BUILD_FOR_SSE "Build with support for SSE" ON)
OPTION(BUILD_FOR_SSE2 "Build with support for SSE2" ON)
OPTION(BUILD_DOC "Build documentation with doxygen" OFF)
OPTION(INSTALL_HELPER_SCRIPTS "Install various helper scripts" ON)
+IF(WIN32)
+ OPTION(INSTALL_IN_TREE "Install into source tree" ON)
+ENDIF()

IF(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING
@@ -102,7 +105,7 @@ IF(BUILD_DOC)
SET(DOCDIR share/doc/lensfun-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUGFIX} CACHE PATH "Directory to put library documentation in")
ENDIF(BUILD_DOC)

-IF(WIN32)
+IF(WIN32 AND INSTALL_IN_TREE)
# install into place in build-dir
SET(LENSFUN_INSTALL_PREFIX "${SOURCE_BASE_DIR}/lensfun" CACHE PATH "Install prefix for lensfun")
ELSE()
--
1.9.1

70 changes: 0 additions & 70 deletions src/lensfun-1-libregex.patch

This file was deleted.

34 changes: 18 additions & 16 deletions src/lensfun-2-pkg-config.patch
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
This file is part of MXE.
See index.html for further information.

From a104558efebdc4db05a6c79b5f0aa364d4036366 Mon Sep 17 00:00:00 2001
From da0bb87d6e520c042f98204c35105bcf4be7ea0f Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 20 Apr 2014 07:57:41 -0700
Subject: [PATCH 2/3] Add -lstdc++ to pkg-config file
Date: Tue, 21 Oct 2014 18:54:03 -0700
Subject: [PATCH] pkgconfig: Explicitly depend on libstdc++

Fixes MinGW static.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
libs/lensfun/lensfun.pc.in | 2 +-
libs/lensfun/lensfun.pc.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libs/lensfun/lensfun.pc.in b/libs/lensfun/lensfun.pc.in
index f61af62..294212b 100644
--- a/libs/lensfun/lensfun.pc.in
+++ b/libs/lensfun/lensfun.pc.in
@@ -2,5 +2,5 @@ Name: lensfun
Description: A photographic lens database and access library
Version: @CONF_VERSION@
Requires: glib-2.0
-Libs: -L@CONF_LIBDIR@ -llensfun @NEED_LIB_REGEX@
+Libs: -L@CONF_LIBDIR@ -llensfun -lstdc++ @NEED_LIB_REGEX@
Cflags: -I@CONF_INCLUDEDIR@ @CONF_LENSFUN_STATIC@
diff --git a/libs/lensfun/lensfun.pc.cmake b/libs/lensfun/lensfun.pc.cmake
index 5f91d44..9c291f8 100644
--- a/libs/lensfun/lensfun.pc.cmake
+++ b/libs/lensfun/lensfun.pc.cmake
@@ -10,5 +10,5 @@ Description: A photographic lens database and access library
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_MICRO@.@VERSION_BUGFIX@
Requires.private: glib-2.0
Libs: -L${libdir} -llensfun
-Libs.private: @REGEX_LIBRARIES@
+Libs.private: @REGEX_LIBRARIES@ -lstdc++
Cflags: -I${includedir} -I${includedir}/lensfun
--
1.8.3.2
1.9.1

15 changes: 0 additions & 15 deletions src/lensfun-3-mac-build.patch

This file was deleted.

Loading

0 comments on commit 94d5345

Please sign in to comment.