@@ -7,6 +7,7 @@ set(BUILD_OPENGL OFF CACHE STRING "Build with OpenGL support, options are: AUTO
77set_property (CACHE BUILD_OPENGL PROPERTY STRINGS AUTO ON OFF )
88option (BUILD_SHARED_LIBS "Build using shared libraries" ON )
99option (CMAKE_CUDA_ARCHITECTURES "CUDA architectures to build for (needs CMake 3.18)" OFF )
10+ option (ENABLE_FPNGE "Enable fpnge - requires c++ and sse4" OFF )
1011option (HUFFMAN_GPU_CONST_TABLES "Enable Huffman GPU decoder quick const tables" OFF )
1112set (OPENGL_CONTEXT AUTO CACHE STRING "Use specifiedn OpenGL context creation, options are: AUTO GLX GLFW NONE" )
1213set_property (CACHE OPENGL_CONTEXT PROPERTY STRINGS AUTO GLX GLFW NONE )
@@ -69,6 +70,14 @@ endif()
6970
7071set(COMPILED_OPTIONS)
7172
73+ if(ENABLE_FPNGE)
74+ add_definitions(" -DHAVE_FPNGE ")
75+ enable_language(CXX)
76+ list(APPEND COMPILED_OPTIONS fpnge)
77+ set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -msse4 ")
78+ file(GLOB_RECURSE CXX_FILES src/*.cc src/*.cpp)
79+ endif()
80+
7281# allow passing <PackageName>_ROOT to find_package()
7382if(POLICY CMP0074)
7483 cmake_policy(SET CMP0074 NEW)
@@ -81,12 +90,14 @@ endif()
8190if (MSVC)
8291 set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} /W4 ")
8392 set(CMAKE_CUDA_FLAGS " ${CMAKE_CUDA_FLAGS} -Xcompiler /W4 ")
93+ set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} /W4 /Zc:__cplusplus ")
8494 if (MSVC_VERSION GREATER_EQUAL 1914)
8595 set(CMAKE_CUDA_FLAGS " ${CMAKE_CUDA_FLAGS} -Xcompiler /Zc:__cplusplus ")
8696 endif()
8797else()
8898 set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ")
8999 set(CMAKE_CUDA_FLAGS " ${CMAKE_CUDA_FLAGS} -Xcompiler -Wall -Xcompiler -Wextra ")
100+ set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic ")
90101endif()
91102
92103# Find OpenGL, GLEW, GLUT and GLFW
@@ -158,7 +169,7 @@ file(GLOB H_FILES libgpujpeg/*.h ${CMAKE_CURRENT_BINARY_DIR}/libgpujpeg/gpujpeg_
158169file(GLOB_RECURSE C_FILES src/*.c src/*.cu)
159170list(REMOVE_ITEM C_FILES " ${CMAKE_CURRENT_SOURCE_DIR} /src/main.c ")
160171list(REMOVE_ITEM C_FILES " ${CMAKE_CURRENT_SOURCE_DIR} /src/utils/getopt.c ")
161- add_library(gpujpeg ${H_FILES} ${C_FILES} )
172+ add_library(gpujpeg ${H_FILES} ${C_FILES} ${CXX_FILES} )
162173target_include_directories(${PROJECT_NAME}
163174 PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
164175)
@@ -229,7 +240,7 @@ install(EXPORT GPUJPEGTargets
229240install(FILES ${CMAKE_CURRENT_BINARY_DIR} /GPUJPEGConfig.cmake ${CMAKE_CURRENT_BINARY_DIR} /GPUJPEGConfigVersion.cmake
230241 DESTINATION lib/cmake/GPUJPEG)
231242
232- file(GLOB_RECURSE ALL_SOURCES *.c *.cu *.cuh *.h *.hpp)
243+ file(GLOB_RECURSE ALL_SOURCES *.c *.cc *.cpp *. cu *.cuh *.h *.hpp)
233244add_custom_target(cscope cscope -bv ${ALL_SOURCES} )
234245add_custom_target(ctags ctags ${ALL_SOURCES} )
235246add_custom_target(universal-ctags ctags-universal ${ALL_SOURCES} )
0 commit comments