| 1 |
|
| 2 |
cmake_minimum_required(VERSION 3.6) |
| 3 |
|
| 4 |
project(teraterm_all) |
| 5 |
|
| 6 |
option(ENABLE_DPIAWARENESS "Dpiawareness" ON) |
| 7 |
option(ENABLE_TTXSAMPLES "TTXSamples" ON) |
| 8 |
option(USE_UNICODE_API "unicode" OFF) |
| 9 |
|
| 10 |
set_property(GLOBAL PROPERTY USE_FOLDERS ON) |
| 11 |
|
| 12 |
set(CMAKE_CONFIGURATION_TYPES "Debug;Release") |
| 13 |
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) |
| 14 |
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) |
| 15 |
|
| 16 |
# _WIN32_WINNT_WIN10 0x0a00 |
| 17 |
set(_WIN32_WINNT "0x0a00") |
| 18 |
if(MSVC) |
| 19 |
# https://www.leeholmes.com/blog/2017/02/27/differences-between-visual-studio-2012-2013-and-2015/ |
| 20 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") |
| 21 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") |
| 22 |
string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
| 23 |
string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) |
| 24 |
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) |
| 25 |
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) |
| 26 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_CRT_SECURE_NO_DEPRECATE /W3") |
| 27 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_CRT_SECURE_NO_DEPRECATE /W3") |
| 28 |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GF /Gy") |
| 29 |
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GF /Gy") |
| 30 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") |
| 31 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") |
| 32 |
if(${CMAKE_GENERATOR} MATCHES "Visual Studio 15 2017") |
| 33 |
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /ZI") |
| 34 |
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /ZI") |
| 35 |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") |
| 36 |
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") |
| 37 |
endif() |
| 38 |
elseif(MINGW) |
| 39 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=${_WIN32_WINNT}") |
| 40 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_WIN32_WINNT=${_WIN32_WINNT}") |
| 41 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra " |
| 42 |
"-Wno-unused-parameter -static -ffunction-sections -fdata-sections ${C_ONLY_FLAGS}") |
| 43 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra " |
| 44 |
"-Wno-unused-parameter -static -ffunction-sections -fdata-sections") |
| 45 |
if (CMAKE_C_COMPILER_ID STREQUAL "GNU") |
| 46 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc -static-libstdc++") |
| 47 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") |
| 48 |
endif() |
| 49 |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -s -Wl,--gc-sections") |
| 50 |
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -s -Wl,--gc-sections") |
| 51 |
endif() |
| 52 |
|
| 53 |
### create version_info.h |
| 54 |
if(EXISTS "${CMAKE_SOURCE_DIR}/.git") |
| 55 |
# git-svn |
| 56 |
find_package(Git) |
| 57 |
if(Git_FOUND) |
| 58 |
execute_process( |
| 59 |
COMMAND ${GIT_EXECUTABLE} svn log --oneline -1 |
| 60 |
OUTPUT_VARIABLE ov) |
| 61 |
string(REGEX MATCH "[0-9]+" SVNVERSION ${ov}) |
| 62 |
endif() |
| 63 |
elseif(EXISTS "${CMAKE_SOURCE_DIR}/.svn") |
| 64 |
# svn |
| 65 |
find_package(Subversion) |
| 66 |
if(SUBVERSION_FOUND) |
| 67 |
Subversion_WC_INFO(${CMAKE_SOURCE_DIR} TT) |
| 68 |
set(SVNVERSION "${TT_WC_REVISION}") |
| 69 |
endif() |
| 70 |
else() |
| 71 |
# build without svn,git? |
| 72 |
#set(SVNVERSION "0000") |
| 73 |
endif() |
| 74 |
configure_file( |
| 75 |
version_info.h.in |
| 76 |
version_info.h |
| 77 |
@ONLY) |
| 78 |
message("revision=\"${SVNVERSION}\"") |
| 79 |
|
| 80 |
#### |
| 81 |
add_subdirectory(teraterm) |
| 82 |
add_subdirectory(ttpmenu) |
| 83 |
add_subdirectory(TTProxy) |
| 84 |
add_subdirectory(ttssh2) |
| 85 |
add_subdirectory(TTXKanjiMenu) |
| 86 |
if(${ENABLE_TTXSAMPLES}) |
| 87 |
add_subdirectory(TTXSamples) |
| 88 |
endif() |