Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/libs/buildsfmt.cmake

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10723 - (show annotations) (download)
Mon May 29 14:29:06 2023 UTC (10 months, 1 week ago) by zmatsuo
File size: 4665 byte(s)
cmake ビルドを調整

- Linux上などでもMinGW64bit版をビルドできるよう修正
  - -DARCHITECHTER=64 or 32 でに変更
- install_cygwin.cmake が2箇所に存在したので buildtools/ のみとした
  - ci_scripts/install_cygwin.cmake は削除
- ci_scripts/build_local_appveyor_vs20*.bat を修正
- ci_scripts/find_cmake.bat
  - 誤りを修正
- cygwin\CMakeLists.txt
  - MinGWビルド時、cygwinに関するビルドを行わないようにした
- libs
  - cmake の2重呼び出しを行わないようにした
1 # for SFMT
2 # cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=64 -P buildsfmt.cmake
3 # cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=32 -P buildsfmt.cmake
4 # cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -DARCHITECTURE=32 -P buildsfmt.cmake
5 # cmake -DCMAKE_GENERATOR="Unix Makefiles" -DARCHITECTURE=64 -P buildsfmt.cmake
6
7 include(script_support.cmake)
8
9 set(EXTRACT_DIR "${CMAKE_CURRENT_LIST_DIR}/build/SFMT/src")
10 set(SRC_DIR "${EXTRACT_DIR}/SFMT")
11 set(INSTALL_DIR "${CMAKE_CURRENT_LIST_DIR}/SFMT_${TOOLSET}")
12 set(BUILD_DIR "${CMAKE_CURRENT_LIST_DIR}/build/SFMT/build_${TOOLSET}")
13 if(${ARCHITECTURE} EQUAL 64)
14 set(INSTALL_DIR "${INSTALL_DIR}_x64")
15 set(BUILD_DIR "${BUILD_DIR}_x64")
16 endif()
17
18 ########################################
19
20 # Configure + Generate
21 function(cmake_generate GENERATOR SRC_DIR WORKING_DIR OPTIONS)
22 execute_process(
23 COMMAND ${CMAKE_COMMAND} ${SRC_DIR} -G "${GENERATOR}" ${OPTIONS}
24 WORKING_DIRECTORY "${BUILD_DIR}"
25 ENCODING AUTO
26 RESULT_VARIABLE rv
27 )
28 if(NOT rv STREQUAL "0")
29 message(FATAL_ERROR "cmake build fail ${rv}")
30 endif()
31 endfunction()
32
33 # build + install
34 function(cmake_build WORKING_DIR OPTIONS BUILD_TOOL_OPTIONS)
35 execute_process(
36 COMMAND ${CMAKE_COMMAND} --build . ${OPTIONS} --target install -- ${BUILD_TOOL_OPTIONS}
37 WORKING_DIRECTORY "${BUILD_DIR}"
38 ENCODING AUTO
39 RESULT_VARIABLE rv
40 )
41 if(NOT rv STREQUAL "0")
42 message(FATAL_ERROR "cmake build fail ${rv}")
43 endif()
44 endfunction()
45
46 ########################################
47
48 file(MAKE_DIRECTORY ${SRC_DIR})
49
50 execute_process(
51 COMMAND ${CMAKE_COMMAND} -DTARGET=sfmt -DEXT_DIR=${EXTRACT_DIR} -P download.cmake
52 )
53
54 if(${SRC_DIR}/COPYING IS_NEWER_THAN ${CMAKE_CURRENT_LIST_DIR}/doc_help/SFMT-LICENSE.txt)
55 file(COPY
56 ${SRC_DIR}/LICENSE.txt
57 DESTINATION ${CMAKE_CURRENT_LIST_DIR}/doc_help)
58 file(RENAME
59 ${CMAKE_CURRENT_LIST_DIR}/doc_help/LICENSE.txt
60 ${CMAKE_CURRENT_LIST_DIR}/doc_help/SFMT-LICENSE.txt)
61 endif()
62
63 ########################################
64
65 if(NOT EXISTS ${SRC_DIR}/CMakeLists.txt)
66 file(WRITE "${SRC_DIR}/CMakeLists.txt"
67 "cmake_minimum_required(VERSION 3.11.4)\n"
68 "project(SFMT C)\n"
69 "\n"
70 "if(MSVC)\n"
71 " set(CMAKE_DEBUG_POSTFIX \"d\")\n"
72 "endif()\n"
73 "\n"
74 "add_library(\n"
75 " sfmt STATIC\n"
76 " SFMT.c\n"
77 " )\n"
78 "\n"
79 "install(\n"
80 " TARGETS sfmt\n"
81 " ARCHIVE DESTINATION \${CMAKE_INSTALL_PREFIX}/lib\n"
82 " )\n"
83 "install(\n"
84 " FILES\n"
85 " SFMT.h SFMT-params.h SFMT-params19937.h\n"
86 " SFMT_version_for_teraterm.h\n"
87 " DESTINATION \${CMAKE_INSTALL_PREFIX}/include\n"
88 " )\n"
89 )
90 endif()
91
92 ########################################
93
94 file(MAKE_DIRECTORY "${BUILD_DIR}")
95
96 if("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
97 # multi-configuration
98 unset(GENERATE_OPTIONS)
99 if(${ARCHITECTURE} EQUAL 64)
100 list(APPEND GENERATE_OPTIONS "-A" "x64")
101 else()
102 list(APPEND GENERATE_OPTIONS "-A" "Win32")
103 endif()
104 list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}")
105 list(APPEND GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/VSToolchain.cmake")
106
107 cmake_generate("${CMAKE_GENERATOR}" "${SRC_DIR}" "${BUILD_DIR}" "${GENERATE_OPTIONS}")
108
109 unset(BUILD_OPTIONS)
110 list(APPEND BUILD_OPTIONS --config Debug)
111 cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "")
112
113 unset(BUILD_OPTIONS)
114 list(APPEND BUILD_OPTIONS --config Release)
115 cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "")
116 else()
117 # single-configuration
118 unset(GENERATE_OPTIONS)
119 if(${ARCHITECTURE} EQUAL 64)
120 list(APPEND GENERATE_OPTIONS "-DUSE_GCC_64=ON")
121 else()
122 list(APPEND GENERATE_OPTIONS "-DUSE_GCC_32=ON")
123 endif()
124 if(CMAKE_HOST_UNIX)
125 list(APPEND GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/../mingw.toolchain.cmake")
126 endif(CMAKE_HOST_UNIX)
127 if(("${CMAKE_GENERATOR}" MATCHES "Visual Studio") OR ("${CMAKE_GENERATOR}" MATCHES "NMake Makefiles"))
128 list(APPEND GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/VSToolchain.cmake")
129 endif()
130 list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}")
131 list(APPEND GENERATE_OPTIONS "-DCMAKE_BUILD_TYPE=Release")
132
133 cmake_generate("${CMAKE_GENERATOR}" "${SRC_DIR}" "${BUILD_DIR}" "${GENERATE_OPTIONS}")
134
135 if(${CMAKE_GENERATOR} MATCHES "Unix Makefiles")
136 list(APPEND BUILD_TOOL_OPTIONS "-j")
137 endif()
138
139 unset(BUILD_OPTIONS)
140 cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "${BUILD_TOOL_OPTIONS}")
141
142 endif()

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26