-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
64 lines (46 loc) · 1.64 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
#cmake file
cmake_minimum_required(VERSION 3.5)
project(tetris)
if(${UNIX})
message(STATUS "UNIX system")
else()
message(FATAL_ERROR "The system is not supported")
endif()
option(set_clang "set clang default compiler and linker" 0)
option(cros_compile "cros compile for win32" 0)
if(set_clang)
set(CMAKE_CXX_COMPILER clang++)
endif()
if(cros_compile)
set(PROJECT_NAME ${PROJECT_NAME}.exe)
set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++-posix)
set(CMAKE_CXX_FLAGS "-static-libstdc++ -static-libgcc")
endif()
add_definitions(-Wall -std=c++14)
message(STATUS "CXX_Compiler is " ${CMAKE_CXX_COMPILER})
message(STATUS "CXX_Compiler's flags are " ${CMAKE_CXX_FLAGS})
message(STATUS "Project name is " ${PROJECT_NAME})
set(SRC_MAIN sources/main.cpp)
set(LIBRARY_TETRIS "tet")
file(GLOB SRC_TETRIS "sources/libtetris/*.cpp")
include_directories(include)
if(cros_compile)
find_package(PDCurses REQUIRED)
else()
find_package(Curses REQUIRED)
endif(cros_compile)
include_directories(${CURSES_INCLUDE_DIR})
add_library(${LIBRARY_TETRIS} STATIC ${SRC_TETRIS})
add_executable(${PROJECT_NAME} ${SRC_MAIN})
target_link_libraries(${PROJECT_NAME} ${LIBRARY_TETRIS} ${CURSES_LIBRARIES})
install(TARGETS ${LIBRARY_TETRIS} DESTINATION /usr/lib)
install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
if(NOT TARGET uninstall)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif(NOT TARGET uninstall)