Skip to content

Commit 2422ee5

Browse files
authored
build: PNG auto-build improvements (AcademySoftwareFoundation#4835)
The main thing is no longer using a custom namespace prefix for auto-built libpng. We're already building it statically by default and hiding the symbols, so the custom prefix only serves to make occasional build problems by having different symbols than typically found in the library. We still keep it as an option that can be enabled. Also, be a little more careful in clearing unneeded variable that may have been set by an earier attempt to find the package but that failed to turn up a version we were happy with. --------- Signed-off-by: Larry Gritz <lg@larrygritz.com>
1 parent 9a3faac commit 2422ee5

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

src/cmake/build_PNG.cmake

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,34 @@
77
######################################################################
88

99
set_cache (PNG_BUILD_VERSION 1.6.47 "PNG version for local builds")
10-
set (PNG_GIT_REPOSITORY "https://github.com/pnggroup/libpng")
11-
set (PNG_GIT_TAG "v${PNG_BUILD_VERSION}")
12-
10+
super_set (PNG_BUILD_GIT_REPOSITORY "https://github.com/pnggroup/libpng")
11+
super_set (PNG_BUILD_GIT_TAG "v${PNG_BUILD_VERSION}")
12+
super_set (PNG_BUILD_EXTRA_CMAKE_ARGS "")
1313
set_cache (PNG_BUILD_SHARED_LIBS OFF
1414
DOC "Should execute a local PNG build, if necessary, build shared libraries" ADVANCED)
15+
set_option (PNG_BUILD_USE_CUSTOM_PREFIX "Use custom namespace prefix for libpng" OFF)
1516

17+
if (PNG_BUILD_USE_CUSTOM_PREFIX)
18+
list (APPEND PNG_BUILD_EXTRA_CMAKE_ARGS -D PNG_PREFIX=oiio)
19+
endif ()
1620
string (MAKE_C_IDENTIFIER ${PNG_BUILD_VERSION} PNG_VERSION_IDENT)
1721

1822
unset (PNG_FOUND)
23+
unset (PNG_LIBRARY)
24+
unset (PNG_LIBRARY_RELEASE)
25+
unset (PNG_LIBRARY_DEBUG)
1926
unset (PNG_LIBRARIES)
2027
unset (PNG_INCLUDE_DIRS)
2128
unset (PNG_INCLUDE_DIR)
29+
unset (PNG_PNG_INCLUDE_DIR)
2230
unset (PNG_VERSION_STRING)
2331
unset (PNG_DEFINITIONS)
2432
unset (PNG_VERSION)
2533

2634
build_dependency_with_cmake (PNG
2735
VERSION ${PNG_BUILD_VERSION}
28-
GIT_REPOSITORY ${PNG_GIT_REPOSITORY}
29-
GIT_TAG ${PNG_GIT_TAG}
36+
GIT_REPOSITORY ${PNG_BUILD_GIT_REPOSITORY}
37+
GIT_TAG ${PNG_BUILD_GIT_TAG}
3038
CMAKE_ARGS
3139
-D PNG_SHARED=${PNG_BUILD_SHARED_LIBS}
3240
-D PNG_STATIC=ON
@@ -36,17 +44,25 @@ build_dependency_with_cmake (PNG
3644
-D PNG_FRAMEWORK=OFF
3745
-D CMAKE_POSITION_INDEPENDENT_CODE=ON
3846
-D CMAKE_INSTALL_LIBDIR=lib
39-
-D PNG_PREFIX=oiio
47+
${PNG_BUILD_EXTRA_CMAKE_ARGS}
4048
)
4149

4250

4351
set (PNG_REFIND FALSE)
4452
set (PNG_REFIND_VERSION ${PNG_BUILD_VERSION})
45-
46-
4753
set (PNG_REFIND_ARGS EXACT REQUIRED)
48-
set (PNG_DIR ${PNG_LOCAL_INSTALL_DIR}/lib/cmake/PNG)
4954
set (PNG_FIND_VERSION_EXACT ON)
55+
unset (PNG_FOUND)
56+
unset (PNG_LIBRARY)
57+
unset (PNG_LIBRARY_RELEASE)
58+
unset (PNG_LIBRARY_DEBUG)
59+
unset (PNG_LIBRARIES)
60+
unset (PNG_INCLUDE_DIRS)
61+
unset (PNG_INCLUDE_DIR)
62+
unset (PNG_PNG_INCLUDE_DIR)
63+
unset (PNG_VERSION_STRING)
64+
unset (PNG_DEFINITIONS)
65+
unset (PNG_VERSION)
5066

5167
if (PNG_BUILD_VERSION VERSION_GREATER 1.6.43)
5268
list (APPEND PNG_REFIND_ARGS CONFIG)

0 commit comments

Comments
 (0)