2021-10-06 10:54:07 +00:00
|
|
|
cmake_minimum_required(VERSION 3.9)
|
2023-04-01 12:48:19 +00:00
|
|
|
project(blueNoiseGen)
|
2021-10-06 10:54:07 +00:00
|
|
|
|
2023-04-01 12:48:19 +00:00
|
|
|
set(blueNoiseGen_SOURCES
|
2021-10-06 10:54:07 +00:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/blue_noise.cpp
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/image.cpp
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
|
2021-11-10 11:04:08 +00:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/arg_parse.cpp
|
2021-10-06 10:54:07 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic")
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
|
|
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g")
|
|
|
|
|
|
|
|
if(NOT DEFINED CMAKE_BUILD_TYPE OR NOT CMAKE_BUILD_TYPE)
|
|
|
|
set(CMAKE_BUILD_TYPE "Debug")
|
|
|
|
message("Set build type to Debug by default")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
find_package(Threads REQUIRED)
|
2023-03-31 09:55:36 +00:00
|
|
|
if(NOT DEFINED DISABLE_OPENCL OR NOT DISABLE_OPENCL)
|
|
|
|
find_package(OpenCL)
|
2023-03-31 09:46:10 +00:00
|
|
|
if(NOT DEFINED OpenCL_FOUND)
|
|
|
|
set(DISABLE_OPENCL True)
|
|
|
|
message(WARNING "OpenCL not found, OpenCL usage is disabled.")
|
|
|
|
endif()
|
2023-03-31 09:55:36 +00:00
|
|
|
else()
|
|
|
|
message(STATUS "Not checking for OpenCL")
|
2023-03-31 09:46:10 +00:00
|
|
|
endif()
|
2021-11-08 11:04:58 +00:00
|
|
|
find_package(PNG REQUIRED)
|
2021-10-06 10:54:07 +00:00
|
|
|
|
2023-04-01 12:48:19 +00:00
|
|
|
add_executable(blueNoiseGen ${blueNoiseGen_SOURCES})
|
|
|
|
target_compile_features(blueNoiseGen PUBLIC cxx_std_17)
|
2023-03-31 09:46:10 +00:00
|
|
|
if(DEFINED DISABLE_OPENCL AND DISABLE_OPENCL)
|
|
|
|
message(STATUS "OpenCL usage is disabled.")
|
2023-04-01 12:48:19 +00:00
|
|
|
target_include_directories(blueNoiseGen PUBLIC
|
2023-03-31 09:46:10 +00:00
|
|
|
Threads::Threads
|
|
|
|
${PNG_INCLUDE_DIRS})
|
2023-04-01 12:48:19 +00:00
|
|
|
target_link_libraries(blueNoiseGen PUBLIC
|
2023-03-31 09:46:10 +00:00
|
|
|
Threads::Threads
|
|
|
|
${PNG_LIBRARIES})
|
2023-04-01 12:48:19 +00:00
|
|
|
target_compile_definitions(blueNoiseGen PRIVATE DITHERING_OPENCL_ENABLED=0)
|
2023-03-31 09:46:10 +00:00
|
|
|
else()
|
|
|
|
message(STATUS "OpenCL usage is enabled.")
|
2023-04-01 12:48:19 +00:00
|
|
|
target_include_directories(blueNoiseGen PUBLIC
|
2023-03-31 09:46:10 +00:00
|
|
|
Threads::Threads
|
|
|
|
${OpenCL_INCLUDE_DIRS}
|
|
|
|
${PNG_INCLUDE_DIRS})
|
2023-04-01 12:48:19 +00:00
|
|
|
target_link_libraries(blueNoiseGen PUBLIC
|
2023-03-31 09:46:10 +00:00
|
|
|
Threads::Threads
|
|
|
|
${OpenCL_LIBRARIES}
|
|
|
|
${PNG_LIBRARIES})
|
2023-04-01 12:48:19 +00:00
|
|
|
target_compile_definitions(blueNoiseGen PRIVATE DITHERING_OPENCL_ENABLED=1)
|
2023-03-31 09:46:10 +00:00
|
|
|
endif()
|