Skip to content

Commit cbd8a3b

Browse files
committed
Build on OSX
- Add flag GPUJPEG_USE_CUDA to get all the cuda part conditional - Update CMAKE to use GL (Without X11 for OSX) Signed-off-by: Anthony Liot <[email protected]>
1 parent db88d21 commit cbd8a3b

17 files changed

+410
-92
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,5 @@ test-driver
4444
Debug
4545
Release
4646

47+
# VSCode
48+
.vscode/

CMakeLists.txt

+28-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)
22
# change version also in configure.ac
3-
project(gpujpeg VERSION 0.21.0 LANGUAGES C CUDA)
3+
project(gpujpeg VERSION 0.21.0 LANGUAGES C)
4+
include(CheckLanguage)
5+
6+
check_language(CUDA)
7+
if(CMAKE_CUDA_COMPILER)
8+
enable_language(CUDA)
9+
add_definitions(-DGPUJPEG_USE_CUDA)
10+
else()
11+
message(STATUS "No CUDA support")
12+
endif()
413

514
# options
615
set(BUILD_OPENGL AUTO CACHE STRING "Build with OpenGL support, options are: AUTO ON OFF")
@@ -56,6 +65,8 @@ set(NEEDED_COMPILER_FEATURES c_std_11)
5665

5766
set(COMPILED_OPTIONS)
5867

68+
set(CMAKE_VERBOSE_MAKEFILE ON)
69+
5970
# allow passing <PackageName>_ROOT to find_package()
6071
if(POLICY CMP0074)
6172
cmake_policy(SET CMP0074 NEW)
@@ -65,6 +76,17 @@ endif()
6576
if(POLICY CMP0092)
6677
cmake_policy(SET CMP0092 NEW)
6778
endif()
79+
80+
# Fix behavior of CMAKE_CXX_STANDARD when targeting macOS.
81+
if (POLICY CMP0025)
82+
cmake_policy(SET CMP0025 NEW)
83+
endif ()
84+
85+
# Find OpenGL, GLEW, GLUT and GLFW
86+
if(POLICY CMP0072)
87+
cmake_policy(SET CMP0072 NEW)
88+
endif()
89+
6890
if (MSVC)
6991
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
7092
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /W4")
@@ -73,10 +95,6 @@ else()
7395
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -Wall -Xcompiler -Wextra")
7496
endif()
7597

76-
# Find OpenGL, GLEW, GLUT and GLFW
77-
if(POLICY CMP0072)
78-
cmake_policy(SET CMP0072 NEW)
79-
endif()
8098
find_package(OpenGL)
8199
find_package(GLEW)
82100
find_package(GLUT)
@@ -99,15 +117,17 @@ if(NOT BUILD_OPENGL STREQUAL "OFF" AND NOT OPENGL_ERROR)
99117

100118
# Build GPUJPEG library with OpenGL support
101119
add_definitions("-DGPUJPEG_USE_OPENGL")
120+
add_definitions("-DGL_SILENCE_DEPRECATION")
121+
102122
set(GPUJPEG_OPENGL_LIBRARIES)
103123
include_directories(${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})
104-
list(APPEND GPUJPEG_OPENGL_LIBRARIES ${GLEW_LIBRARIES})
124+
list(APPEND GPUJPEG_OPENGL_LIBRARIES GLEW::GLEW)
105125
list(APPEND GPUJPEG_OPENGL_LIBRARIES ${OPENGL_LIBRARIES})
106126
if(GLUT_FOUND)
107127
include_directories(${GLUT_INCLUDE_DIR})
108128
list(APPEND GPUJPEG_OPENGL_LIBRARIES ${GLUT_glut_LIBRARY})
109129
endif()
110-
if(X11_FOUND AND (OPENGL_CONTEXT STREQUAL "AUTO" OR OPENGL_CONTEXT STREQUAL "GLX"))
130+
if(NOT APPLE AND X11_FOUND AND (OPENGL_CONTEXT STREQUAL "AUTO" OR OPENGL_CONTEXT STREQUAL "GLX"))
111131
include_directories(${X11_INCLUDE_DIR})
112132
list(APPEND GPUJPEG_OPENGL_LIBRARIES ${X11_LIBRARIES})
113133
add_definitions("-DGPUJPEG_USE_GLX")
@@ -182,7 +202,7 @@ if(GPUJPEG_OPENGL_ENABLED AND GLUT_FOUND)
182202
add_executable(decoder_gltex ${FILES})
183203
target_compile_features(decoder_gltex PRIVATE ${NEEDED_COMPILER_FEATURES})
184204
set_property(TARGET decoder_gltex PROPERTY C_STANDARD 99)
185-
target_link_libraries(decoder_gltex ${PROJECT_NAME} -lglut)
205+
target_link_libraries(decoder_gltex ${PROJECT_NAME} ${GPUJPEG_OPENGL_LIBRARIES})
186206

187207
# OpenGL interoperability example (currently not working)
188208
#file(GLOB FILES test/opengl_interop/*.c test/opengl_interop/*.h test/opengl_interop/*.cu)

examples/decode_to_cuda_pnm.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
* then copied back to RAM and written to a PNM file.
44
*/
55

6-
#include <cuda_runtime.h>
6+
#ifdef GPUJPEG_USE_CUDA
7+
#include <cuda_runtime.h>
8+
#endif
79
#include <libgpujpeg/gpujpeg_common.h>
810
#include <libgpujpeg/gpujpeg_decoder.h>
911
#include <stdbool.h>

0 commit comments

Comments
 (0)