summaryrefslogtreecommitdiff
blob: e4fadf1aa05c3071ccf575a5acd3ba78b32c84c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
From db1cccd9cee830f8822521f2c401ea74ad161360 Mon Sep 17 00:00:00 2001
From: Jonathan Scruggs <j.scruggs@gmail.com>
Date: Mon, 25 Sep 2017 17:41:26 +0100
Subject: [PATCH] CTL: Use GNUInstallDirs and fix PkgConfig files

* GNUInstallDirs are variables set by each distro and OS, so we
  don't need to define them manually. They can also be set manually
  during the configure phase. The code to define custom directories can
  be removed and replaced with the equivalent GNUInstallDirs variable.
* Pkg-Config is used to find IlmBase and OpenEXR, but isn't fully
  utilized everywhere. This makes Pkg-Config a hard dependency so that
  the libraries and directories can be found easily. This will use the
  correct libraries no matter how they are named, so this is compatible
  with both pre-2.0 and post 2.0 naming schemes.
* The Pkg-Config files had several errors that are now fixed.

Upstream PR: https://github.com/ampas/CTL/pull/67
---
 CMakeLists.txt                         | 36 ++++++++---------------------
 OpenEXR_CTL/CMakeLists.txt             |  2 +-
 OpenEXR_CTL/CtlModules/CMakeLists.txt  |  2 +-
 OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt |  4 ++--
 OpenEXR_CTL/exrdpx/CMakeLists.txt      |  4 ++--
 config/CTL.pc.in                       |  8 +++----
 config/OpenEXR_CTL.pc.in               | 15 ++++++-------
 configure.cmake                        | 41 ++++++++++++++++------------------
 ctlrender/CMakeLists.txt               | 20 ++++++++---------
 doc/CMakeLists.txt                     |  2 +-
 lib/IlmCtl/CMakeLists.txt              |  4 ++--
 lib/IlmCtlMath/CMakeLists.txt          |  4 ++--
 lib/IlmCtlSimd/CMakeLists.txt          |  6 ++---
 lib/IlmImfCtl/CMakeLists.txt           |  6 ++---
 lib/dpx/CMakeLists.txt                 |  1 +
 15 files changed, 66 insertions(+), 89 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01f622c..35e9a48 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,22 +1,14 @@
 cmake_minimum_required(VERSION 2.8)
 project( CTL )
 
+INCLUDE ( GNUInstallDirs )
+
 set( CTL_MAJOR_VERSION 1 )
 set( CTL_MINOR_VERSION 5 )
-set( CTL_PATCH_VERSION 0 )
+set( CTL_PATCH_VERSION 2 )
 set( CTL_VERSION ${CTL_MAJOR_VERSION}.${CTL_MINOR_VERSION}.${CTL_PATCH_VERSION} )
 
-## Make install directories overrideable
-set( INSTALL_LIB_DIR lib CACHE PATH "Install directory for libraries" )
-set( INSTALL_BIN_DIR bin CACHE PATH "Install directory for executable binaries" )
-set( INSTALL_INCLUDE_DIR include CACHE PATH "Install directory for public header files" )
-set( INSTALL_DOC_DIR doc CACHE PATH "Install directory for documentation" )
-if( WIN32 AND NOT CYGWIN )
-  set(DEF_INSTALL_CMAKE_DIR CMake)
-else()
-  set(DEF_INSTALL_CMAKE_DIR lib/CMake/CTL)
-endif()
-set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Install directory for project CMake files" )
+set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/CTL CACHE PATH "Install directory for project CMake files" )
 
 # use, i.e. don't skip the full RPATH for the build tree
 SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
@@ -28,20 +20,11 @@ SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
 # which point to directories outside the build tree to the install RPATH
 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 # the RPATH to be used when installing, but only if it's not a system directory
-LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
+LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" isSystemDir)
 IF("${isSystemDir}" STREQUAL "-1")
-  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
 ENDIF("${isSystemDir}" STREQUAL "-1")
 
-
-## convert install paths to absolute
-foreach( p LIB BIN INCLUDE CMAKE DOC)
-  set( var INSTALL_${p}_DIR )
-  if( NOT IS_ABSOLUTE "${${var}}" )
-    set( ${var} "${CMAKE_INSTALL_PREFIX}/${${var}}" )
-  endif()
-endforeach()
-
 option(ENABLE_SHARED "Enable Shared Libraries" ON)
 
 if ( ENABLE_SHARED )
@@ -70,20 +53,19 @@ export( TARGETS IlmCtl IlmCtlMath IlmCtlSimd FILE "${PROJECT_BINARY_DIR}/CTLLibr
 export(PACKAGE CTL)
  
 # Create a CTLBuildTreeSettings.cmake file for the use from the build tree
-file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}")
+file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
 configure_file(config/CTLBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CTLBuildTreeSettings.cmake" @ONLY)
 configure_file(config/CTLConfig.cmake.in "${PROJECT_BINARY_DIR}/CTLConfig.cmake" @ONLY)
 configure_file(config/CTLConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CTLConfigVersion.cmake" @ONLY)
 
 if ( PKG_CONFIG_FOUND )
 configure_file(config/CTL.pc.in "${PROJECT_BINARY_DIR}/CTL.pc" @ONLY)
-install( FILES "${PROJECT_BINARY_DIR}/CTL.pc" DESTINATION lib/pkgconfig COMPONENT dev )
+install( FILES "${PROJECT_BINARY_DIR}/CTL.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT dev )
 endif()
 
 install( FILES
   "${PROJECT_BINARY_DIR}/CTLConfig.cmake"
   "${PROJECT_BINARY_DIR}/CTLConfigVersion.cmake"
+  "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake"
   DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
-install(FILES "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake" DESTINATION
-  "${INSTALL_CMAKE_DIR}" COMPONENT dev)
 
diff --git a/OpenEXR_CTL/CMakeLists.txt b/OpenEXR_CTL/CMakeLists.txt
index c1ca53e..3f19dd4 100644
--- a/OpenEXR_CTL/CMakeLists.txt
+++ b/OpenEXR_CTL/CMakeLists.txt
@@ -13,7 +13,7 @@ add_custom_target( OpenEXR_CTL DEPENDS CtlModules exrdpx exr_ctl_exr )
 
 if ( PKG_CONFIG_FOUND )
 configure_file(../config/OpenEXR_CTL.pc.in "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" @ONLY)
-install( FILES "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" DESTINATION lib/pkgconfig COMPONENT dev )
+install( FILES "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT dev )
 endif()
 
 # TODO CMake config
diff --git a/OpenEXR_CTL/CtlModules/CMakeLists.txt b/OpenEXR_CTL/CtlModules/CMakeLists.txt
index c63c22e..9c9e5b8 100644
--- a/OpenEXR_CTL/CtlModules/CMakeLists.txt
+++ b/OpenEXR_CTL/CtlModules/CMakeLists.txt
@@ -2,6 +2,6 @@ install(
     FILES
         utilities.ctl
     DESTINATION 
-        ${INSTALL_LIB_DIR}/CTL
+        ${CMAKE_INSTALL_LIBDIR}/CTL
 )
 
diff --git a/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt b/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
index e396ec5..1f0eea0 100644
--- a/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
+++ b/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
@@ -20,6 +20,6 @@ target_link_libraries( exr_ctl_exr IlmCtlSimd IlmCtlMath IlmCtl IlmImfCtl )
 target_link_libraries( exr_ctl_exr ${IlmBase_LIBRARIES} ${IlmBase_LDFLAGS_OTHER} )
 target_link_libraries( exr_ctl_exr ${OpenEXR_LIBRARIES} ${OpenEXR_LDFLAGS_OTHER} )
 
-install( TARGETS exr_ctl_exr DESTINATION ${INSTALL_BIN_DIR} )
+install( TARGETS exr_ctl_exr DESTINATION ${CMAKE_INSTALL_BINDIR} )
 
-install( FILES change_saturation.ctl DESTINATION ${INSTALL_LIB_DIR}/CTL )
+install( FILES change_saturation.ctl DESTINATION ${CMAKE_INSTALL_LIBDIR}/CTL )
diff --git a/OpenEXR_CTL/exrdpx/CMakeLists.txt b/OpenEXR_CTL/exrdpx/CMakeLists.txt
index 50bd116..d9eadd8 100644
--- a/OpenEXR_CTL/exrdpx/CMakeLists.txt
+++ b/OpenEXR_CTL/exrdpx/CMakeLists.txt
@@ -20,8 +20,8 @@ target_link_libraries( exrdpx IlmCtlSimd IlmCtlMath IlmCtl IlmImfCtl )
 target_link_libraries( exrdpx ${IlmBase_LIBRARIES} ${IlmBase_LDFLAGS_OTHER} )
 target_link_libraries( exrdpx ${OpenEXR_LIBRARIES} ${OpenEXR_LDFLAGS_OTHER} )
 
-install( TARGETS exrdpx DESTINATION ${INSTALL_BIN_DIR} )
+install( TARGETS exrdpx DESTINATION ${CMAKE_INSTALL_BINDIR} )
 
-install( FILES transform_DPX_EXR.ctl transform_EXR_DPX.ctl DESTINATION ${INSTALL_LIB_DIR}/CTL )
+install( FILES transform_DPX_EXR.ctl transform_EXR_DPX.ctl DESTINATION ${CMAKE_INSTALL_LIBDIR}/CTL )
 
 
diff --git a/config/CTL.pc.in b/config/CTL.pc.in
index 6d6e732..9b212a4 100644
--- a/config/CTL.pc.in
+++ b/config/CTL.pc.in
@@ -1,8 +1,6 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=@INSTALL_BIN_DIR@
-libdir=@INSTALL_LIB_DIR@
-includedir=@INSTALL_INCLUDE_DIR@
-CTL_includedir=@INSTALL_INCLUDE_DIR@/CTL
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+CTL_includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/CTL
 
 Name: CTL
 Description: CTL interpreter library
diff --git a/config/OpenEXR_CTL.pc.in b/config/OpenEXR_CTL.pc.in
index 4cef5c6..39a1a3f 100644
--- a/config/OpenEXR_CTL.pc.in
+++ b/config/OpenEXR_CTL.pc.in
@@ -1,11 +1,10 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-OpenEXR_includedir=@includedir@/OpenEXR
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+OpenEXR_includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/OpenEXR
 
 Name: OpenEXR_CTL
 Description: Simplified OpenEXR interface to CTL
-Version: @OPENEXR_CTL_VERSION@
-Libs: -L${libdir} -lIlmImfCtl @OPENEXR_LDFLAGS@ @CTL_LDFLAGS@
-Cflags: @CTL_CXXFLAGS_PC@ @OPENEXR_CXXFLAGS@ -I${OpenEXR_includedir}
+Version: @CTL_VERSION@
+Libs: -L${libdir} -lIlmImfCtl
+Cflags: -I${OpenEXR_includedir}
+Requires: CTL,OpenEXR
diff --git a/configure.cmake b/configure.cmake
index 1817071..eb7e14e 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -1,10 +1,7 @@
-# Until we get some of these modules into the upstream packages, put them here
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_INSTALL_PREFIX}/share/CMake")
+# Make Pkg-Config required.
+find_package( PkgConfig )
 
-find_package( PkgConfig QUIET )
-
-find_package( IlmBase QUIET )
+PKG_CHECK_MODULES ( IlmBase REQUIRED IlmBase )
 if(IlmBase_FOUND)
   message( STATUS "found IlmBase, version ${IlmBase_VERSION}" )
   ###
@@ -13,11 +10,11 @@ if(IlmBase_FOUND)
   ###
   include_directories( ${IlmBase_INCLUDE_DIRS} )
   link_directories( ${IlmBase_LIBRARY_DIRS} )
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${IlmBase_CFLAGS}" )
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IlmBase_CFLAGS}" )
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
-  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
-  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${IlmBase_CFLAGS_OTHER}" )
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IlmBase_CFLAGS_OTHER}" )
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
+  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
+  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
 else()
   message( SEND_ERROR "IlmBase not found, please set the include and library paths manually" )
 endif()
@@ -39,20 +36,20 @@ else()
   endif()
 endif()
 
-find_package( OpenEXR QUIET )
+PKG_CHECK_MODULES ( OpenEXR REQUIRED OpenEXR )
 if (OpenEXR_FOUND)
   message( STATUS "Found OpenEXR, version ${OpenEXR_VERSION}" )
 else()
   message( WARNING "Unable to find OpenEXR libraries, disabling" )
 endif()
 
-find_package( AcesContainer )
-if (AcesContainer_FOUND)
-  message( STATUS "Found AcesContainer, version ${AcesContainer_VERSION}" )
-else()
-  if ( PKG_CONFIG_FOUND )
-    pkg_check_modules( AcesContainer AcesContainer )
-  else()
-    message( WARNING "Unable to find AcesContainer libraries, disabling" )
-  endif()
-endif()
+find_package( AcesContainer )		
+ if (AcesContainer_FOUND)		
+   message( STATUS "Found AcesContainer, version ${AcesContainer_VERSION}" )		
+ else()		
+   if ( PKG_CONFIG_FOUND )		
+     pkg_check_modules( AcesContainer AcesContainer )		
+   else()		
+     message( WARNING "Unable to find AcesContainer libraries, disabling" )		
+   endif()		
+ endif()
diff --git a/ctlrender/CMakeLists.txt b/ctlrender/CMakeLists.txt
index 9fced14..d97093d 100644
--- a/ctlrender/CMakeLists.txt
+++ b/ctlrender/CMakeLists.txt
@@ -11,12 +11,12 @@ include_directories( ${OpenEXR_INCLUDE_DIRS} )
 link_directories( ${OpenEXR_LIBRARY_DIRS} )
 endif()
 
-if ( AcesContainer_FOUND )
-add_definitions( -DHAVE_ACESFILE=1 )
-include_directories( ${AcesContainer_INCLUDE_DIRS} )
-link_directories( ${AcesContainer_LIBRARY_DIRS} )
-endif()
-
+if ( AcesContainer_FOUND )		
+add_definitions( -DHAVE_ACESFILE=1 )		
+include_directories( ${AcesContainer_INCLUDE_DIRS} )		
+link_directories( ${AcesContainer_LIBRARY_DIRS} )		
+endif()		
+ 
 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/lib/IlmCtl" "${PROJECT_SOURCE_DIR}/lib/IlmCtlMath" "${PROJECT_SOURCE_DIR}/lib/IlmCtlSimd" "${PROJECT_SOURCE_DIR}/lib/dpx" )
 
 add_executable( ctlrender
@@ -41,9 +41,9 @@ if (OpenEXR_FOUND)
 target_link_libraries( ctlrender ${OpenEXR_LIBRARIES} )
 target_link_libraries( ctlrender ${OpenEXR_LDFLAGS_OTHER} )
 endif()
-if (AcesContainer_FOUND)
-target_link_libraries( ctlrender ${AcesContainer_LIBRARIES} )
-target_link_libraries( ctlrender ${AcesContainer_LDFLAGS_OTHER} )
+if (AcesContainer_FOUND)		
+target_link_libraries( ctlrender ${AcesContainer_LIBRARIES} )		
+target_link_libraries( ctlrender ${AcesContainer_LDFLAGS_OTHER} )		
 endif()
 
-install( TARGETS ctlrender DESTINATION bin )
+install( TARGETS ctlrender DESTINATION ${CMAKE_INSTALL_BINDIR} )
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 0b123d0..9776205 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1 +1 @@
-install( FILES CtlManual.pdf CtlManual.doc DESTINATION doc/CTL )
+install( FILES CtlManual.pdf CtlManual.doc DESTINATION ${CMAKE_INSTALL_DOCDIR} )
diff --git a/lib/IlmCtl/CMakeLists.txt b/lib/IlmCtl/CMakeLists.txt
index 3672a43..ef301bd 100644
--- a/lib/IlmCtl/CMakeLists.txt
+++ b/lib/IlmCtl/CMakeLists.txt
@@ -22,7 +22,7 @@ add_library( IlmCtl ${DO_SHARED}
 )
 
 target_link_libraries( IlmCtl ${IlmBase_LDFLAGS_OTHER} )
-target_link_libraries( IlmCtl Iex IlmThread Half )
+target_link_libraries( IlmCtl ${IlmBase_LIBRARIES} )
 
 set_target_properties( IlmCtl PROPERTIES
   VERSION ${CTL_VERSION}
@@ -50,4 +50,4 @@ install( FILES
 	CtlVersion.h
  DESTINATION include/CTL )
 
-install( TARGETS IlmCtl DESTINATION lib )
+install( TARGETS IlmCtl DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/IlmCtlMath/CMakeLists.txt b/lib/IlmCtlMath/CMakeLists.txt
index 96738cf..6997c74 100644
--- a/lib/IlmCtlMath/CMakeLists.txt
+++ b/lib/IlmCtlMath/CMakeLists.txt
@@ -18,8 +18,8 @@ install( FILES
   CtlLookupTable.h
   CtlRbfInterpolator.h
   CtlSparseMatrix.h
- DESTINATION include/CTL )
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CTL )
 
-install( TARGETS IlmCtlMath DESTINATION lib )
+install( TARGETS IlmCtlMath DESTINATION ${CMAKE_INSTALL_LIBDIR} )
 
 # TODO Add Imath and Iex libadd dependency and version info
diff --git a/lib/IlmCtlSimd/CMakeLists.txt b/lib/IlmCtlSimd/CMakeLists.txt
index 2ba792a..5eaf87d 100644
--- a/lib/IlmCtlSimd/CMakeLists.txt
+++ b/lib/IlmCtlSimd/CMakeLists.txt
@@ -1,7 +1,7 @@
 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/lib/IlmCtl" "${PROJECT_SOURCE_DIR}/lib/IlmCtlMath" )
 
 add_executable( halfExpLogTable halfExpLogTable.cpp )
-target_link_libraries( halfExpLogTable Half )
+target_link_libraries( halfExpLogTable ${IlmBase_LIBRARIES} )
 
 add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/halfExpLogTable.h"
                     COMMAND halfExpLogTable "${CMAKE_CURRENT_BINARY_DIR}/halfExpLogTable.h" "${CMAKE_CURRENT_BINARY_DIR}/halfExpLog.h"
@@ -40,6 +40,6 @@ set_target_properties( IlmCtlSimd PROPERTIES
   SOVERSION ${CTL_VERSION}
 )
 
-install( FILES CtlSimdInterpreter.h DESTINATION include/CTL )
+install( FILES CtlSimdInterpreter.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CTL )
 
-install( TARGETS IlmCtlSimd DESTINATION lib )
+install( TARGETS IlmCtlSimd DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/IlmImfCtl/CMakeLists.txt b/lib/IlmImfCtl/CMakeLists.txt
index 47563df..784e27f 100644
--- a/lib/IlmImfCtl/CMakeLists.txt
+++ b/lib/IlmImfCtl/CMakeLists.txt
@@ -7,10 +7,10 @@ add_library( IlmImfCtl ${DO_SHARED}
   ImfCtlCopyFunctionArg.cpp
 )
 
-target_link_libraries( IlmImfCtl IlmCtl IlmImf Iex IlmThread Half )
+target_link_libraries( IlmImfCtl IlmCtl ${OpenEXR_LIBRARIES} ${IlmBase_LIBRARIES} )
 
-install( FILES ImfCtlApplyTransforms.h DESTINATION include/OpenEXR )
+install( FILES ImfCtlApplyTransforms.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/OpenEXR )
 
 export( TARGETS IlmImfCtl IlmCtl FILE "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake" )
 
-install( TARGETS IlmImfCtl DESTINATION lib )
+install( TARGETS IlmImfCtl DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/dpx/CMakeLists.txt b/lib/dpx/CMakeLists.txt
index c8be26e..918890e 100644
--- a/lib/dpx/CMakeLists.txt
+++ b/lib/dpx/CMakeLists.txt
@@ -11,3 +11,4 @@ add_library( ctldpx
  dpx_rw.cc
 )
 
+target_link_libraries( ctldpx ${IlmBase_LIBRARIES} )