changed cmake behaviour: executables are now always statically linked. When -DBUIL_SH...
authorAntonin Descampe <antonin@gmail.com>
Sun, 28 Nov 2010 17:07:04 +0000 (17:07 +0000)
committerAntonin Descampe <antonin@gmail.com>
Sun, 28 Nov 2010 17:07:04 +0000 (17:07 +0000)
codec/CMakeLists.txt
libjp3dvm/CMakeLists.txt

index 24595c7a9ceb3b3512d300af0a6c424d30980e00..bf08bc00ab278687fc652117ecc5abbf9f8f0190 100644 (file)
@@ -27,16 +27,14 @@ ENDIF(DONT_HAVE_GETOPT)
 
 # Do the proper thing when building static...if only there was configured
 # headers or def files instead
-IF(NOT BUILD_SHARED_LIBS)
-  ADD_DEFINITIONS(-DOPJ_STATIC)
-ENDIF(NOT BUILD_SHARED_LIBS)
+ADD_DEFINITIONS(-DOPJ_STATIC)
 
 #FIND_PACKAGE(TIFF REQUIRED)
 
 # Loop over all executables:
 FOREACH(exe jp3d_to_volume volume_to_jp3d)
   ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
-  TARGET_LINK_LIBRARIES(${exe} ${OPJ_PREFIX}openjp3dvm) # ${TIFF_LIBRARIES})
+  TARGET_LINK_LIBRARIES(${exe} ${OPENJPEG_LIBRARY_NAME}_JP3D.static) # ${TIFF_LIBRARIES})
   # On unix you need to link to the math library:
   IF(UNIX)
     TARGET_LINK_LIBRARIES(${exe} m)
index 4c0fae41570d9a2ead55448280f0adb79ad0c7fe..4e9d241f09255dfd1fd1b0e5d85a860238406ed8 100644 (file)
@@ -10,25 +10,54 @@ SET(JP3DVM_SRCS
 bio.c  cio.c  dwt.c  event.c  jp3d.c  jp3d_lib.c  mct.c  mqc.c  openjpeg.c  pi.c  raw.c  t1.c  t1_3d.c  t2.c  tcd.c  tgt.c  volume.c
 )
 
-# Pass proper definition to preprocessor to generate shared lib
+IF(LCMS_INCLUDE_DIR)
+  INCLUDE_DIRECTORIES( ${LCMS_INCLUDE_DIR} )
+ENDIF(LCMS_INCLUDE_DIR)
+
+# Build the static library
 IF(WIN32)
-  IF(BUILD_SHARED_LIBS)
-    ADD_DEFINITIONS(-DOPJ_EXPORTS)
-  ELSE(BUILD_SHARED_LIBS)
-    ADD_DEFINITIONS(-DOPJ_STATIC)
-  ENDIF(BUILD_SHARED_LIBS)
+  ADD_DEFINITIONS(-DOPJ_STATIC)
 ENDIF(WIN32)
-
-# Create the library
-#ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS})
-ADD_LIBRARY(${OPJ_PREFIX}openjp3dvm ${JP3DVM_SRCS})
-SET_TARGET_PROPERTIES(${OPJ_PREFIX}openjp3dvm
+ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME}_JP3D.static STATIC ${JP3DVM_SRCS})
+SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME}_JP3D.static PROPERTIES OUTPUT_NAME ${OPENJPEG_LIBRARY_NAME}_JP3D)
+SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME}_JP3D.static
   PROPERTIES
     VERSION   1.3.0
     SOVERSION 1)
+IF(LCMS_LIB)
+TARGET_LINK_LIBRARIES(${OPENJPEG_LIBRARY_NAME}_JP3D.static ${LCMS_LIB})
+ENDIF(LCMS_LIB)
 
 # Install library
-INSTALL_TARGETS(/lib/ ${OPJ_PREFIX}openjp3dvm)
+INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}_JP3D.static
+DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
+)
+
+# If BUILD_SHARED_LIBS is ON, also build the shared library
+IF(BUILD_SHARED_LIBS)
+  # replace flag for static build with flag for shared build
+  IF(WIN32)
+    REMOVE_DEFINITIONS(-DOPJ_STATIC)
+    ADD_DEFINITIONS(-DOPJ_EXPORTS)
+  ENDIF(WIN32)
+  # Create the shared library
+  ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME}_JP3D.shared SHARED ${JP3DVM_SRCS})
+  SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME}_JP3D.shared PROPERTIES OUTPUT_NAME ${OPENJPEG_LIBRARY_NAME}_JP3D)
+  SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME}_JP3D.shared
+    PROPERTIES
+      VERSION   1.3.0
+      SOVERSION 1)
+  IF(LCMS_LIB)
+    TARGET_LINK_LIBRARIES(${OPENJPEG_LIBRARY_NAME}_JP3D.shared ${LCMS_LIB})
+  ENDIF(LCMS_LIB)
+  # Install library
+  INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}_JP3D.shared
+  DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
+  )
+  IF(WIN32)
+    REMOVE_DEFINITIONS(-DOPJ_EXPORTS)
+  ENDIF(WIN32)
+ENDIF(BUILD_SHARED_LIBS)
 
 # Install includes files
 INSTALL(FILES openjpeg.h