Skip to content

Commit fcc6c08

Browse files
committed
add fpnge encoder
disabled by default This partially reverts b416d74 (returning optional C++ code).
1 parent 7265fec commit fcc6c08

8 files changed

Lines changed: 1920 additions & 6 deletions

File tree

CMakeLists.txt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ set(BUILD_OPENGL OFF CACHE STRING "Build with OpenGL support, options are: AUTO
77
set_property(CACHE BUILD_OPENGL PROPERTY STRINGS AUTO ON OFF)
88
option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
99
option(CMAKE_CUDA_ARCHITECTURES "CUDA architectures to build for (needs CMake 3.18)" OFF)
10+
option(ENABLE_FPNGE "Enable fpnge - requires c++ and sse4" OFF)
1011
option(HUFFMAN_GPU_CONST_TABLES "Enable Huffman GPU decoder quick const tables" OFF)
1112
set(OPENGL_CONTEXT AUTO CACHE STRING "Use specifiedn OpenGL context creation, options are: AUTO GLX GLFW NONE")
1213
set_property(CACHE OPENGL_CONTEXT PROPERTY STRINGS AUTO GLX GLFW NONE)
@@ -69,6 +70,13 @@ endif()
6970
7071
set(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+
endif()
79+
7280
# allow passing <PackageName>_ROOT to find_package()
7381
if(POLICY CMP0074)
7482
cmake_policy(SET CMP0074 NEW)
@@ -81,12 +89,14 @@ endif()
8189
if (MSVC)
8290
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
8391
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /W4")
92+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /Zc:__cplusplus")
8493
if (MSVC_VERSION GREATER_EQUAL 1914)
8594
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /Zc:__cplusplus")
8695
endif()
8796
else()
8897
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic")
8998
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -Wall -Xcompiler -Wextra")
99+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic")
90100
endif()
91101
92102
# Find OpenGL, GLEW, GLUT and GLFW
@@ -156,9 +166,12 @@ message(STATUS "Configured options: ${COMPILED_OPTIONS}")
156166
# GPUJPEG library
157167
file(GLOB H_FILES libgpujpeg/*.h ${CMAKE_CURRENT_BINARY_DIR}/libgpujpeg/gpujpeg_version.h)
158168
file(GLOB_RECURSE C_FILES src/*.c src/*.cu)
169+
if(NOT DISABLE_CPP)
170+
file(GLOB_RECURSE CPP_FILES src/*.cc src/*.cpp)
171+
endif()
159172
list(REMOVE_ITEM C_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c")
160173
list(REMOVE_ITEM C_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/utils/getopt.c")
161-
add_library(gpujpeg ${H_FILES} ${C_FILES})
174+
add_library(gpujpeg ${H_FILES} ${C_FILES} ${CPP_FILES})
162175
target_include_directories(${PROJECT_NAME}
163176
PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
164177
)
@@ -229,7 +242,7 @@ install(EXPORT GPUJPEGTargets
229242
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/GPUJPEGConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/GPUJPEGConfigVersion.cmake
230243
DESTINATION lib/cmake/GPUJPEG)
231244
232-
file(GLOB_RECURSE ALL_SOURCES *.c *.cu *.cuh *.h *.hpp)
245+
file(GLOB_RECURSE ALL_SOURCES *.c *.cc *.cpp *.cu *.cuh *.h *.hpp)
233246
add_custom_target(cscope cscope -bv ${ALL_SOURCES})
234247
add_custom_target(ctags ctags ${ALL_SOURCES})
235248
add_custom_target(universal-ctags ctags-universal ${ALL_SOURCES})

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,8 @@ License
440440
- This software contains source code provided by NVIDIA Corporation.
441441
- This software source code is based on SiGenGPU \[[3]\].
442442
- Thanks [notings/stb](https://github.com/nothings/stb) (BMP+TGA image
443-
support, public domain).
443+
support, public domain) and [fpnge](https://github.com/animetosho/fpnge)
444+
(PNG encoder, Apache license, optional)
444445

445446
References
446447
----------

0 commit comments

Comments
 (0)