CMakeLists.txt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. cmake_minimum_required(VERSION 3.9)
  2. set(CMAKE_CXX_STANDARD 17)
  3. project(mandel VERSION 1.0.0 DESCRIPTION "library for mandelbrot calculations")
  4. find_package(OpenCL REQUIRED)
  5. find_package(OpenMP)
  6. FILE(GLOB MandelSources src/*.cpp
  7. FILE(GLOB MandelHeaders include/*.h))
  8. include_directories(
  9. "include"
  10. ${OpenCL_INCLUDE_DIRS}
  11. )
  12. link_directories(${OpenCL_LIBRARY})
  13. if (APPLE)
  14. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -framework OpenCL")
  15. endif()
  16. if (MSVC)
  17. set_source_files_properties(src/CpuGeneratorsAVX.cpp PROPERTIES COMPILE_FLAGS /arch:AVX)
  18. else()
  19. set_source_files_properties(src/CpuGeneratorsAVX.cpp PROPERTIES COMPILE_FLAGS -mavx)
  20. endif(MSVC)
  21. if (MSVC)
  22. set_source_files_properties(src/CpuGeneratorsSSE2.cpp PROPERTIES COMPILE_FLAGS /arch:SSE2)
  23. else()
  24. set_source_files_properties(src/CpuGeneratorsSSE2.cpp PROPERTIES COMPILE_FLAGS -msse2)
  25. endif(MSVC)
  26. add_library(mandel STATIC ${MandelSources})
  27. if(OpenMP_CXX_FOUND)
  28. target_link_libraries(mandel PUBLIC OpenCL::OpenCL OpenMP::OpenMP_CXX)
  29. else()
  30. target_link_libraries(mandel OpenCL::OpenCL)
  31. endif()