-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
76 lines (64 loc) · 1.88 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Minimum CMake version
cmake_minimum_required (VERSION 3.8)
# Create the project
project ("Hako" LANGUAGES CXX)
# Set the C++ language standard
set(CMAKE_CXX_STANDARD
17
)
set(CMAKE_CXX_STANDARD_REQUIRED
True
)
# Set output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/bin
)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/lib
)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/lib
)
# Set headers for Hako
set(HEADERS
inc/Hako/Hako.h
inc/Hako/HakoCmd.h
inc/Hako/HakoFile.h
inc/Hako/HakoPlatforms.h
inc/Hako/IFile.h
inc/Hako/Serializer.h
private/HakoLog.h
private/SerializerList.h
private/MurmurHash3.h
)
# Set sources for Hako
set(SOURCES
src/Hako.cpp
src/HakoCmd.cpp
src/HakoFile.cpp
src/IFile.cpp
src/Serializer.cpp
private/HakoLog.cpp
private/SerializerList.cpp
private/MurmurHash3.cpp
)
if(HAKO_READ_OUTSIDE_OF_ARCHIVE)
add_compile_definitions("HAKO_READ_OUTSIDE_OF_ARCHIVE")
endif(HAKO_READ_OUTSIDE_OF_ARCHIVE)
if(HAKO_NO_DYNAMIC_SERIALIZERS)
add_compile_definitions("HAKO_NO_DYNAMIC_SERIALIZERS")
endif(HAKO_NO_DYNAMIC_SERIALIZERS)
if(HAKO_NO_LOG)
add_compile_definitions("HAKO_NO_LOG")
endif(HAKO_NO_LOG)
# Create library for Hako
add_library(Hako ${SOURCES} ${HEADERS})
# Add include directories
target_include_directories(Hako PUBLIC ${CMAKE_CURRENT_LIST_DIR}/inc)
target_include_directories(Hako PRIVATE ${CMAKE_CURRENT_LIST_DIR}/private ${CMAKE_CURRENT_LIST_DIR}/inc/Hako)
if(HAKO_STANDALONE)
# Add source to this project's executable.
add_executable(HakoExe "main.cpp")
target_link_libraries(HakoExe PRIVATE Hako)
set_target_properties(HakoExe PROPERTIES RUNTIME_OUTPUT_NAME Hako)
endif(HAKO_STANDALONE)