Skip to content

Commit 8bc2c07

Browse files
committed
add fpnge encoder
disabled by default This partially reverts the b416d74 (we are returning some optional C++ code). from upstream: <veluca93/fpnge@097ebcc>
1 parent 7265fec commit 8bc2c07

8 files changed

Lines changed: 1899 additions & 6 deletions

File tree

CMakeLists.txt

Lines changed: 13 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,14 @@ 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+
file(GLOB_RECURSE CXX_FILES src/*.cc src/*.cpp)
79+
endif()
80+
7281
# allow passing <PackageName>_ROOT to find_package()
7382
if(POLICY CMP0074)
7483
cmake_policy(SET CMP0074 NEW)
@@ -81,12 +90,14 @@ endif()
8190
if (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()
8797
else()
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")
90101
endif()
91102
92103
# Find OpenGL, GLEW, GLUT and GLFW
@@ -158,7 +169,7 @@ file(GLOB H_FILES libgpujpeg/*.h ${CMAKE_CURRENT_BINARY_DIR}/libgpujpeg/gpujpeg_
158169
file(GLOB_RECURSE C_FILES src/*.c src/*.cu)
159170
list(REMOVE_ITEM C_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c")
160171
list(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})
162173
target_include_directories(${PROJECT_NAME}
163174
PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
164175
)
@@ -229,7 +240,7 @@ install(EXPORT GPUJPEGTargets
229240
install(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)
233244
add_custom_target(cscope cscope -bv ${ALL_SOURCES})
234245
add_custom_target(ctags ctags ${ALL_SOURCES})
235246
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)