CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. cmake_minimum_required(VERSION 2.6)
  2. # --- Set sources -------------------------------------------------------------
  3. set(ufofilter_SRCS
  4. ufo-edf-3d-writer-task.c
  5. ufo-lamino-bp-task.c
  6. ufo-lamino-conv-task.c
  7. ufo-lamino-ramp-task.c
  8. ufo-padding-2d-task.c
  9. ufo-scale-task.c)
  10. set(ufofilter_KERNELS
  11. scale.cl
  12. lamino_bp_generic.cl
  13. padding_2d.cl
  14. lamino_ramp.cl
  15. lamino_ft_conv.cl)
  16. set(ufofilter_LIBS
  17. ${UFO_LIBRARIES}
  18. ${GLIB2_LIBRARIES}
  19. ${GOBJECT2_LIBRARIES})
  20. set(ufofilter_HEADERS
  21. lamino-filter-def.h)
  22. link_directories(${UFO_LIBRARY_DIRS})
  23. # --- Target ------------------------------------------------------------------
  24. include_directories(
  25. ${GLIB2_INCLUDE_DIRS}
  26. ${OPENCL_INCLUDE_DIRS}
  27. ${UFO_INCLUDE_DIRS}
  28. ${CMAKE_CURRENT_BINARY_DIR})
  29. foreach(_src ${ufofilter_SRCS})
  30. # find plugin suffix
  31. string(REGEX REPLACE "ufo-([^ \\.]+)-task.*" "\\1" task "${_src}")
  32. # build string to get miscalleanous sources
  33. string(REPLACE "-" "_" _misc ${task})
  34. string(TOUPPER ${_misc} _misc_upper)
  35. # create an option name and add this to disable filters
  36. set(target_option "ENABLE_${_misc_upper}")
  37. option(${target_option} "Build filter ${task}" ON)
  38. if (${target_option})
  39. set(_misc "${_misc}_misc_SRCS")
  40. string(REPLACE "-" "" _targetname ${task})
  41. set(target "ufofilter${_targetname}")
  42. # build single shared library per filter
  43. if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  44. add_library(${target} MODULE ${_src} ${${_misc}})
  45. else()
  46. add_library(${target} SHARED ${_src} ${${_misc}})
  47. endif()
  48. target_link_libraries(${target} ${ufofilter_LIBS})
  49. install(TARGETS ${target}
  50. ARCHIVE DESTINATION ${UFO_PLUGINDIR}
  51. LIBRARY DESTINATION ${UFO_PLUGINDIR})
  52. endif()
  53. endforeach()
  54. # copy kernels
  55. foreach(_kernel ${ufofilter_KERNELS})
  56. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${_kernel}
  57. ${CMAKE_CURRENT_BINARY_DIR}/${_kernel})
  58. install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_kernel}
  59. DESTINATION ${UFO_KERNELDIR})
  60. endforeach()
  61. #copy aux headers into the kernel dir
  62. foreach(_header ${ufofilter_HEADERS})
  63. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${_header}
  64. ${CMAKE_CURRENT_BINARY_DIR}/${_header})
  65. install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_header}
  66. DESTINATION ${UFO_KERNELDIR})
  67. endforeach()