-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathCMakeLists.txt
45 lines (37 loc) · 1.31 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
cmake_minimum_required(VERSION 3.5.0)
project(libbmp)
# Setup default options
option(ENABLE_JPEG "Enable JPG support via libjpg" OFF)
option(ENABLE_FTYPEFONT "Enable FreeType font wrapper" OFF)
set(BITMAP_SOURCE "bmp.c")
if(ENABLE_JPEG)
add_compile_definitions(USEJPG)
set(JPEG_INCLUDE_DIR "../jpeg")
endif()
if(ENABLE_FTYPEFONT)
set(BITMAP_SOURCE ${BITMAP_SOURCE} "ftypefont/ftfont.c")
set(FREETYPE_INCLUDE_DIR "../freetype/include")
endif()
add_library(${PROJECT_NAME} STATIC ${BITMAP_SOURCE})
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${JPEG_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIR})
if (MSVC)
# Statically link with the C runtime library
set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELWITHDEBINFO
)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
set(${CompilerFlag} "${${CompilerFlag}}" CACHE STRING "msvc compiler flags" FORCE)
endforeach()
endif()
install(TARGETS ${PROJECT_NAME} DESTINATION lib)