Revision: 9878 https://osdn.net/projects/ttssh2/scm/svn/commits/9878 Author: zmatsuo Date: 2022-04-21 22:40:53 +0900 (Thu, 21 Apr 2022) Log Message: ----------- cmake,MinGWビルド時にmsys2termがビルドできるよう修正 - cygterm/build_cygterm.cmake - cygtermをビルドするためのスクリプト - msys2からビルド時、msys2termをビルドしないようにしていた - windows用cmake または、 msys2/MinGW 32ibit/64bit から使用できるよう修正 - cygterm_build/CMakeLists.txt - ソースファイルを参照できるよう修正 Modified Paths: -------------- trunk/cygwin/cygterm/build_cygterm.cmake trunk/cygwin/cygterm_build/CMakeLists.txt -------------- next part -------------- Modified: trunk/cygwin/cygterm/build_cygterm.cmake =================================================================== --- trunk/cygwin/cygterm/build_cygterm.cmake 2022-04-21 13:40:43 UTC (rev 9877) +++ trunk/cygwin/cygterm/build_cygterm.cmake 2022-04-21 13:40:53 UTC (rev 9878) @@ -39,26 +39,22 @@ if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "MSYS") # msys2のcmake set(PATH "/c/msys64/usr/bin") - if (EXISTS ${PATH}) + if (EXISTS "c:/msys64/usr/bin/msys-2.0.dll") set(${path} ${PATH} PARENT_SCOPE) endif() elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Windows") - if(${CMAKE_COMMAND} MATCHES "msys") - # msys2/mingw64(32) のcmake - set(PATH "c:/msys64/usr/bin") - if (EXISTS ${PATH}) - #なぜかうまくいかない - #set(${path} ${PATH} PARENT_SCOPE) - endif() - else() - # windowsのcmake - set(PATH "c:\\msys64\\usr\\bin") - if (EXISTS ${PATH}) - set(${path} ${PATH} PARENT_SCOPE) - endif() + # msys2/mingw64 or msys2/mingw32 or Windows のcmake + set(PATH "c:/msys64/usr/bin") # msys2インストールフォルダ + if (EXISTS ${PATH}) + set(${path} ${PATH} PARENT_SCOPE) endif() + elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "CYGWIN") + # cygwin の cmake ,未実装 + unset(${path} PARENT_SCOPE) else() + message("?") endif() + message("last") endfunction() function(build TARGET_CMAKE_COMMAND DIST_DIR GENERATE_OPTION) @@ -68,7 +64,7 @@ message("${TARGET_CMAKE_COMMAND} not found") return() endif() - if(${TARGET_CMAKE_COMMAND} MATCHES "msys") + if("${TARGET_CMAKE_COMMAND}" MATCHES "msys") # msys2のときは、c:/path -> /c/path に書き換える string(REGEX REPLACE "([A-z]):[/\\]" "/\\1/" CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_DIR}") string(REGEX REPLACE "([A-z]):[/\\]" "/\\1/" GENERATE_OPTION "${GENERATE_OPTION}") @@ -121,10 +117,13 @@ ## msys2 GetMsys2Path(PATH) -set(ENV{PATH} ${PATH}) -message("msys2 ENV{PATH}=$ENV{PATH}") +if(DEFINED PATH) + set(ENV{PATH} "/usr/bin") # msys2 の cmake を使うので決め打ち + set(ENV{MSYSTEM} "MSYS") + message("PATH=${PATH}") + message("msys2 ENV{PATH}=$ENV{PATH}") -if (EXISTS ${PATH}/g++.exe) + #if (EXISTS "${PATH}/g++.exe") unset(GENERATE_OPTIONS) if(DEFINED CMAKE_INSTALL_PREFIX) set(GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") Modified: trunk/cygwin/cygterm_build/CMakeLists.txt =================================================================== --- trunk/cygwin/cygterm_build/CMakeLists.txt 2022-04-21 13:40:43 UTC (rev 9877) +++ trunk/cygwin/cygterm_build/CMakeLists.txt 2022-04-21 13:40:53 UTC (rev 9878) @@ -1,10 +1,19 @@ -# cygwin,msys2を使って cygterm,msys2term をビルドする +# cygterm,msys2term をビルドする +# - ${CMAKE_CURRENT_LIST_DIR}/../cygtool/build_cygterm.cmake を使ってビルド +# - ${CMAKE_BINARY_DIR}/$<CONFIG> にビルドしたファイルを出力 +# - install で出力先にコピー cmake_minimum_required(VERSION 3.13) # for Generator-Expression +set(CYGTERM_DIR "${CMAKE_CURRENT_LIST_DIR}/../cygterm") + +file(GLOB SRC "${CYGTERM_DIR}/*.cpp" "${CYGTERM_DIR}/*.h") + add_custom_target( cygterm_build ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt + DEPENDS ${SRC} + SOURCES ${SRC} ) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygterm_build) @@ -18,7 +27,7 @@ add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt COMMAND ${CMAKE_COMMAND} -E echo ${BINARY_DIR} - COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${BINARY_DIR} -P ${CMAKE_CURRENT_LIST_DIR}/../cygterm/build_cygterm.cmake + COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${BINARY_DIR} -P ${CYGTERM_DIR}/build_cygterm.cmake COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/build_mark.txt WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cygterm_build )