-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
executable file
·42 lines (35 loc) · 1.21 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
CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.16)
SET(_TARGET gn)
PROJECT(${_TARGET})
IF (NOT WIN32)
SET(EXTRA_LIBS pthread)
ENDIF()
#ADD_DEFINITIONS("-Wno-extra")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
SET(EXEC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build)
FILE(GLOB SOURCE_FILES "*.c*")
ADD_EXECUTABLE(${_TARGET} ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(${_TARGET} ${EXTRA_LIBS})
INSTALL(TARGETS ${_TARGET} RUNTIME DESTINATION .)
IF (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
SET(EXEC_PATH /usr/local/bin/)
SET(HINT_MSG ", build by 'root' to install it")
ELSEIF(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
ADD_DEFINITIONS("-Wno-format")
ENDIF()
IF (WIN32)
SET(_TARGET_ "${_TARGET}.exe")
IF (${CMAKE_BUILD_TYPE} STREQUAL "Release")
SET(_TARGET_ "${CMAKE_BUILD_TYPE}/${_TARGET}.exe")
ENDIF()
SET(EXEC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/out/)
ELSE()
SET(_TARGET_ ${_TARGET})
ENDIF()
ADD_CUSTOM_COMMAND(
TARGET ${_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${EXEC_PATH}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/${_TARGET_} ${EXEC_PATH}
COMMENT "-- 'gn' is a cross-platform tool to generatting numbers${HINT_MSG}."
)