PROJECT(FusionViewer) FIND_PACKAGE(ITK) IF(ITK_FOUND) INCLUDE(${ITK_USE_FILE}) ELSE(ITK_FOUND) MESSAGE(FATAL_ERROR "ITK not found. Please set ITK_DIR.") ENDIF(ITK_FOUND) SET(JAVA_PROJECT_DIR CACHE PATH "Java project path") SET(SRC ItkImageProvider.cpp ItkIOException.cpp ImageProvider.cpp Image.cpp Cursor.cpp NativeBuffer.cpp) SET(HDR ItkImageProvider.h ItkIOException.h ImageProvider.h) # Prepare variables for user-specified paths to I2TK SET(I2TK_DIR CACHE PATH "I2TK path") LINK_DIRECTORIES(${I2TK_DIR}/bin) IF (WIN32) SET(USE_PRECOMPILED_HEADERS CACHE BOOL "Use precompiled headers") SET(JAVA_HEADERS CACHE PATH "Java headers path") INCLUDE_DIRECTORIES(${JAVA_HEADERS} ${JAVA_HEADERS}/win32) IF (USE_PRECOMPILED_HEADERS) # Set all files except stdafx.cpp and the ITK extension files # to use a precompiled header through stdafx.h SET_SOURCE_FILES_PROPERTIES(${SRC} PROPERTIES COMPILE_FLAGS "/Yu\"stdafx.h\" /Fp\"$(IntDir)/$(TargetName).pch\"") # Set stdafx.cpp to generate a precompiled header SET_SOURCE_FILES_PROPERTIES(stdafx.cpp PROPERTIES COMPILE_FLAGS "/Yc\"stdafx.h\" /Fp\"$(IntDir)/$(TargetName).pch\"") ENDIF (USE_PRECOMPILED_HEADERS) ADD_LIBRARY(FusionViewer SHARED ${SRC} ${HDR} stdafx.cpp stdafx.h) ADD_CUSTOM_COMMAND(TARGET FusionViewer POST_BUILD COMMAND copy ARGS \"$(TargetPath)\" \"${JAVA_PROJECT_DIR}\\lib\\$(TargetFileName)\" COMMENT "Copying to Java project directory") # Not building ItkImageProvider as a standalone DLL ADD_DEFINITIONS(-DNO_ITK_IMAGE_PROVIDER_DLL) ELSE (WIN32) IF (APPLE) # OS X build ADD_LIBRARY(FusionViewer SHARED ${SRC}) INCLUDE_DIRECTORIES(/System/Library/Frameworks/JavaVM.framework/Headers) SET_TARGET_PROPERTIES(FusionViewer PROPERTIES LINK_FLAGS "-framework JavaVM -framework Carbon") ADD_CUSTOM_COMMAND(TARGET FusionViewer POST_BUILD COMMAND cp ARGS libFusionViewer.dylib ${JAVA_PROJECT_DIR}/lib/libFusionViewer.jnilib COMMENT "Copying to Java project directory") ELSE (APPLE) # Linux build ADD_LIBRARY(FusionViewer SHARED ${SRC}) SET(JAVA_HEADERS CACHE PATH "Java headers path") INCLUDE_DIRECTORIES(${JAVA_HEADERS} ${JAVA_HEADERS}/linux) ADD_CUSTOM_COMMAND(TARGET FusionViewer POST_BUILD COMMAND cp ARGS libFusionViewer.so ${JAVA_PROJECT_DIR}/lib/libFusionViewer.so COMMENT "Copying to Java project directory") ENDIF (APPLE) ENDIF (WIN32) TARGET_LINK_LIBRARIES(FusionViewer ITKCommon ITKIO) # If I2TK IO is desired, add a compiler define for it and add # the library and headers directories IF (I2TK_DIR) INCLUDE(${I2TK_DIR}/I2TKConfig.cmake) INCLUDE(${I2TK_USE_FILE}) ADD_DEFINITIONS(-DI2TK_IO) TARGET_LINK_LIBRARIES(FusionViewer I2TKIO) ENDIF (I2TK_DIR)