cmake_minimum_required(VERSION 2.6) project(ImageCompleter) ########### Eigen ############## include_directories(/media/portable/src/Eigen /media/portable/src/Eigen/unsupported) set(CMAKE_MODULE_PATH /media/portable/src/Eigen/cmake) FIND_PACKAGE(Umfpack REQUIRED) FIND_PACKAGE(BLAS REQUIRED) include_directories(${UMFPACK_INCLUDES}) #SET(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET") SET(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET;") # must link to umfpack ################################ find_package(wxWidgets COMPONENTS core base REQUIRED) include( ${wxWidgets_USE_FILE} ) set(cmdsrc src/image-completer-cmd) set(ImageCompleterDir src/image-completer-lib/impl) set(tech src/tech) include_directories(src/image-completer-cmd src/image-completer-lib src/image-completer-lib/api src/image-completer-lib/impl src/image-completer-lib/impl/compositors src/image-completer-lib/impl/energy-calculators src/tech/tech src/tech) #If you want to enable the patches to be composited using Poisson blending, set this flag to ON (requires TAUCS to be installed). set(USE_POISSON OFF CACHE BOOL "Use Poisson blending?") if(USE_POISSON) #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DUSE_POISSON") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} USE_POISSON;") set(LibrariesToLink ${LibrariesToLink} umfpack) endif(USE_POISSON) #If you want to enable the per-pixel energy calculator to use multiple hardware threads, set this flag to ON. set(USE_THREADS OFF CACHE BOOL "Use threads?" FORCE) if(USE_THREADS) #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DUSE_THREADS") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} USE_THREADS;") endif(USE_THREADS) IF(UNIX) #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DUNIX") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} UNIX;") ENDIF(UNIX) set(USE_ITK OFF CACHE BOOL "Use ITK?") IF(USE_ITK) #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DUSE_ITK") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} USE_ITK;") ENDIF(USE_ITK) set(USE_FLOAT_PIXELS OFF CACHE BOOL "Use float pixels?") IF(USE_FLOAT_PIXELS) #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DUSE_FLOAT_PIXELS") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} USE_FLOAT_PIXELS;") ENDIF(USE_FLOAT_PIXELS) set(PIXEL_DIMENSION 3 CACHE STRING "Dimensionality of pixels?") #cmake doesn't have an "INT" variable type, so treat it as a string #set(MAIN_BUILD_FLAGS "${MAIN_BUILD_FLAGS} -DPIXEL_DIMENSION=${PIXEL_DIMENSION}") set(MAIN_BUILD_DEFINITIONS "${MAIN_BUILD_DEFINITIONS} PIXEL_DIMENSION=${PIXEL_DIMENSION};") ############### #if Eigen is setup correctly, we would want to enable Poisson blending IF(USE_POISSON) set(ImageCompleterSources ${ImageCompleterSources} ${ImageCompleterDir}/compositors/PatchTypePoisson.cpp ${ImageCompleterDir}/compositors/PoissonSolver.cpp) ENDIF(USE_POISSON) set(ImageCompleterSources ${ImageCompleterSources} ${cmdsrc}/AppData.cpp ${ImageCompleterDir}/Compositor.cpp ${ImageCompleterDir}/ConstNodeLabels.cpp ${ImageCompleterDir}/EnergyCalculatorContainer.cpp ${ImageCompleterDir}/ImageConst.cpp ${ImageCompleterDir}/ImageScalable.cpp ${ImageCompleterDir}/Label.cpp ${ImageCompleterDir}/LfnIc.cpp ${ImageCompleterDir}/MaskScalable.cpp ${ImageCompleterDir}/MaskWritable.cpp ${ImageCompleterDir}/NeighborEdge.cpp ${ImageCompleterDir}/Node.cpp ${ImageCompleterDir}/NodeSet.cpp ${ImageCompleterDir}/Pch.cpp ${ImageCompleterDir}/PriorityBpRunner.cpp ${ImageCompleterDir}/ScalableDebugging.cpp ${ImageCompleterDir}/Settings.cpp ${ImageCompleterDir}/compositors/CompositorRoot.cpp ${ImageCompleterDir}/compositors/CompositorUtils.cpp ${ImageCompleterDir}/compositors/ImageFloat.cpp ${ImageCompleterDir}/compositors/OutputBlenderDebugSoftMaskIntensity.cpp ${ImageCompleterDir}/compositors/OutputBlenderSoftMask.cpp ${ImageCompleterDir}/compositors/OutputBlenderNone.cpp ${ImageCompleterDir}/compositors/PatchBlenderNone.cpp ${ImageCompleterDir}/compositors/PatchBlenderPriority.cpp ${ImageCompleterDir}/compositors/PatchTypeDebugPatchOrder.cpp ${ImageCompleterDir}/compositors/PatchTypeNormal.cpp ${ImageCompleterDir}/energy-calculators/EnergyCalculatorFft.cpp ${ImageCompleterDir}/energy-calculators/EnergyCalculatorFftUtils.cpp ${ImageCompleterDir}/energy-calculators/EnergyCalculatorPerPixel.cpp ) add_library(ImageCompleterLib ${ImageCompleterSources}) add_library(Tech ${tech}/Pch.cpp ${tech}/tech/Atomic.cpp ${tech}/tech/Core.cpp ${tech}/tech/ImageUtils.cpp ${tech}/tech/Profile.cpp ${tech}/tech/StrUtils.cpp ${tech}/tech/Time.cpp ) ##################################### set(AppSources ${cmdsrc}/Main.cpp ${cmdsrc}/CommandLineOptions.cpp ${cmdsrc}/Pch.cpp ${cmdsrc}/SettingsText.cpp ) set(LibrariesToLink ${wxWidgets_LIBRARIES} Tech ImageCompleterLib) IF(USE_ITK) message("using ITK") find_package(ITK REQUIRED) include(${ITK_USE_FILE}) set(MainAppSources ${AppSources} ${cmdsrc}/AppITKImage.cpp ${cmdsrc}/AppITKMask.cpp ) set(LibrariesToLink ${LibrariesToLink} ${ITK_LIBRARIES}) else(USE_ITK) message("using wx") set(MainAppSources ${AppSources} ${cmdsrc}/AppWxImage.cpp ${cmdsrc}/AppWxMask.cpp ) ENDIF(USE_ITK) # # add_executable(ImageCompleter ${MainAppSources}) # target_link_libraries(ImageCompleter ${LibrariesToLink}) # message("Main build definitions: " ${MAIN_BUILD_DEFINITIONS}) # set_target_properties(ImageCompleter PROPERTIES COMPILE_DEFINITIONS "${MAIN_BUILD_DEFINITIONS}") # # Special builds add_executable(ImageCompleter1f ${AppSources} ${cmdsrc}/AppITKImage.cpp ${cmdsrc}/AppITKMask.cpp) target_link_libraries(ImageCompleter1f ${LibrariesToLink}) set(my_definitions "EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET\; UNIX\; USE_ITK\; USE_FLOAT_PIXELS\; PIXEL_DIMENSION=1") message("my definitions: " ${my_definitions}) set_target_properties(ImageCompleter1f PROPERTIES COMPILE_DEFINITIONS ${my_definitions}) # # add_executable(ImageCompleter3uc ${AppSources} ${cmdsrc}/AppITKImage.cpp ${cmdsrc}/AppITKMask.cpp) # target_link_libraries(ImageCompleter3uc ${LibrariesToLink}) # set_target_properties(ImageCompleter3uc PROPERTIES COMPILE_FLAGS "-DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET -DUNIX -DUSE_ITK -DPIXEL_DIMENSION=3")