Skip to content

Commit c0f5853

Browse files
committed
Change project layout
1 parent 03f0b18 commit c0f5853

26 files changed

+545
-553
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "thirdparty/googletest"]
2+
path = thirdparty/googletest
3+
url = https://github.com/google/googletest.git

CMakeLists.txt

+46-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,58 @@
1-
project(render-sample)
21
cmake_minimum_required(VERSION 3.15)
2+
3+
########################################
4+
# Project setup
5+
########################################
6+
project(raytracer)
7+
8+
########################################
9+
# Set up the compiler flags
10+
########################################
311
set(CMAKE_CXX_STANDARD 17)
412

5-
add_executable(raytracer-tests raytracer-tests.cpp)
13+
########################################
14+
# Define output paths
15+
########################################
16+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
17+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
18+
19+
########################################
20+
# Define basic flags
21+
########################################
22+
option(BUILD_TESTS "Build raytracer with tests" ON)
23+
24+
add_subdirectory(thirdparty)
25+
26+
set(SRC_FILES
27+
# API
28+
${CMAKE_CURRENT_LIST_DIR}/src/image.cpp
29+
${CMAKE_CURRENT_LIST_DIR}/src/render.cpp
30+
# IMPLEMENTATION
31+
${CMAKE_CURRENT_LIST_DIR}/src/tokenizer.cpp
32+
${CMAKE_CURRENT_LIST_DIR}/src/builder.cpp
33+
${CMAKE_CURRENT_LIST_DIR}/src/datatypes.cpp
34+
${CMAKE_CURRENT_LIST_DIR}/src/object.cpp
35+
${CMAKE_CURRENT_LIST_DIR}/src/parser.cpp
36+
)
637

7-
add_executable(${PROJECT_NAME} main.cpp)
38+
set(Raytracer_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include/")
39+
add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
40+
# Set public API
41+
target_include_directories(${PROJECT_NAME}
42+
PUBLIC ${Raytracer_INCLUDE_DIR}
43+
PRIVATE "${PROJECT_SOURCE_DIR}/src")
44+
# Add dependencies
845
find_package(PNG REQUIRED)
946
find_package(JPEG REQUIRED)
1047
target_link_libraries(${PROJECT_NAME} ${PNG_LIBRARY} ${JPEG_LIBRARIES})
1148

49+
# Tool
50+
add_executable(raytracer-tool main.cpp)
51+
target_link_libraries(raytracer-tool ${PROJECT_NAME})
1252

53+
# Tests
1354
enable_testing()
55+
add_executable(raytracer-tests raytracer_tests.cpp)
1456
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
1557
target_link_libraries(raytracer-tests gtest gtest_main)
16-
target_link_libraries(raytracer-tests ${PNG_LIBRARY} ${JPEG_LIBRARIES})
58+
target_link_libraries(raytracer-tests ${PROJECT_NAME})

datatypes.h

-136
This file was deleted.

0 commit comments

Comments
 (0)