OSDN Git Service

[Build][Win32] LLVM12/MinGW-w64/Cross : Add libc++abi and others to toolchain.
authorKyuma Ohta <whatisthis.sowhat@gmail.com>
Sat, 29 May 2021 19:01:05 +0000 (19:01 +0000)
committerKyuma Ohta <whatisthis.sowhat@gmail.com>
Sat, 29 May 2021 19:01:05 +0000 (19:01 +0000)
source/cmake/toolchains/toolchain_mingw_cross_llvm12.cmake
source/cmake/toolchains/toolchain_win32_cross_llvm12.cmake
source/sample-scripts/build_default_vars_mingw-llvm12-cross.sh
source/src/qt/CMakeLists.txt
source/src/qt/avio/CMakeLists.txt
source/src/qt/emuutils/CMakeLists.txt
source/src/qt/gui/CMakeLists.txt
source/src/vm/common_vm/CMakeLists.txt
source/src/vm/fmgen/CMakeLists.txt

index 854eca5..0d97ef4 100644 (file)
@@ -47,4 +47,5 @@ set(SDL_INCLUDE_DIRS ${LIBS_PREFIX}/SDL1/include/SDL)
 
 set(SDLMAIN_LIBRARY "")
 
-set(ADDITIONAL_LIBRARIES libwinmm.a)
+set(ADDITIONAL_LIBRARIES -lssp -lc++abi -lunwind libwinmm.a)
+set(ADDITIONAL_DLL_LIBRARIES -lssp -lc++abi -lunwind)
index 2e452e1..020c374 100644 (file)
@@ -28,7 +28,6 @@ set(CMAKE_C_FLAGS "-target i686-w64-mingw32 -I/opt/llvm-mingw-12/${CMAKE_TOOLCHA
 
 set(CMAKE_EXE_LINKER_FLAGS "-L/usr/i686-w64-mingw32/lib -target i686-w64-mingw32 ")
 set(CMAKE_SHARED_LINKER_FLAGS "-L/usr/i686-w64-mingw32/lib -target i686-w64-mingw32 ")
-
 #set(CMAKE_EXE_LINKER_FLAGS "")
 
 set(LIBAV_ROOT_DIR "/usr/local/i586-mingw-msvc/ffmpeg-4.3")
@@ -75,4 +74,5 @@ set(SDL_INCLUDE_DIRS /usr/local/i586-mingw-msvc/SDL1/include/SDL)
 set(SDLMAIN_LIBRARY "")
 
 set(ADDITIONAL_LIBRARIES -lssp -lc++abi -lunwind libwinmm.a)
+set(ADDITIONAL_DLL_LIBRARIES -lssp -lc++abi -lunwind)
 
index 9b9bd9e..693f4aa 100755 (executable)
@@ -1,4 +1,5 @@
 #!/bin/sh
+ADDITIONAL_STD_LIBS=""
 ADDITIONAL_DEFINES=""
 I_LIB_CLANG_FLAGS=""
 L_LIB_CLANG_FLAGS=""
@@ -12,6 +13,7 @@ LIBS_PREFIX="/usr/local/i586-mingw-msvc"
 #    But, MinGW-w64 has no stpcpy().
 ADDITIONAL_DEFINES=" \
                -fno-builtin-stpcpy \
+               -Dstpcpy\(d,s\)=__builtin_stpcpy\(d,s\) \
                "
 
 # 2. clang-12/libc++12 for MinGW calls _aligned_ prefixed
@@ -19,12 +21,12 @@ ADDITIONAL_DEFINES=" \
 #    but these MinGW-w64 has no them.Should use __mingw_aigned_ prefix. 
 ADDITIONAL_DEFINES=" \
                ${ADDITIONAL_DEFINES} \
-               -Dstpcpy\(d,s\)=__builtin_stpcpy\(d,s\) \
                -D_aligned_malloc\(s,a\)=__mingw_aligned_malloc\(s,a\) \
                -D_aligned_free\(m\)=__mingw_aligned_free\(m\) \
                -D_aligned_offset_realloc\(m,s,a,o\)=__mingw_aligned_offset_realloc\(m,s,a,o\) \
                -D_aligned_realloc\(m,s,o\)=__mingw_aligned_realloc\(m,s,o\) \
                "
+               
 #I_LIB_CLANG_FLAGS=" \
 #                     --sysroot=/opt/llvm-mingw-11 \
 #                   "
@@ -50,7 +52,7 @@ QT5_DIR="${LIBS_PREFIX}/Qt5.15/mingw_82x"
 PATH=/opt/llvm-mingw-12/bin:$PATH
 cmake .. \
        -DCMAKE_TOOLCHAIN_FILE="$PWD/../cmake/toolchains/toolchain_mingw_cross_llvm12.cmake" \
-       -DCMAKE_BUILD_TYPE=Relwithdebinfo \
+       -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_C_FLAGS_RELWITHDEBINFO=" \
                -g2 \
                -ggdb \
@@ -131,4 +133,6 @@ cmake .. \
        -DLIBS_PREFIX="${LIBS_PREFIX}" \
        -DUSE_DEVICES_SHARED_LIB=ON \
        
+       
+       
        
\ No newline at end of file
index 26d2b82..b13c2db 100644 (file)
@@ -41,6 +41,7 @@ target_link_libraries(CSPosd PUBLIC
        Qt5::Widgets
        Qt5::Network
        ${SDL2_LIBRARIES}
+       ${ADDITIONAL_DLL_LIBRARIES}
        )
 generate_export_header(CSPosd
        BASE_NAME CSPosd
@@ -64,6 +65,7 @@ else()
                Qt5::Widgets
                Qt5::Network
                ${SDL2_LIBRARIES}
+               ${ADDITIONAL_DLL_LIBRARIES}
                )
          set_target_properties(CSPosd PROPERTIES 
                SOVERSION ${THIS_LIB_VERSION}
index 64c53be..272c199 100644 (file)
@@ -36,12 +36,13 @@ add_library(CSPavio SHARED
 )
 
 target_link_libraries(CSPavio PUBLIC
-                  PRIVATE ${LIBAV_LIBRARIES}
+                PRIVATE ${LIBAV_LIBRARIES}
                 CSPosd
                 CSPemu_utils
-                  Qt5::Core
-                  Qt5::Gui
-                  Qt5::Widgets
+                Qt5::Core
+                Qt5::Gui
+                Qt5::Widgets
+                ${ADDITIONAL_DLL_LIBRARIES}
          )
 #QT5_USE_MODULES(CSPavio Widgets Core Gui OpenGL)
 set_target_properties(CSPavio PROPERTIES 
@@ -69,6 +70,7 @@ target_link_libraries(CSPavio PUBLIC
                   Qt5::Core
                   Qt5::Gui
                   Qt5::Widgets
+                  ${ADDITIONAL_DLL_LIBRARIES}
          )
 
 set_target_properties(CSPavio PROPERTIES 
index 2da677b..7fe0558 100644 (file)
@@ -33,6 +33,7 @@ target_link_libraries(CSPemu_utils PRIVATE
                Qt5::Core
                ${ZLIB_LIBRARIES}
                ${SDL2_LIBRARIES}
+               ${ADDITIONAL_DLL_LIBRARIES}
          )
          
 set_target_properties(CSPemu_utils PROPERTIES
index 2249025..5d6945f 100644 (file)
@@ -172,6 +172,7 @@ target_link_libraries(CSPgui
          Qt5::OpenGL
          Qt5::Widgets
          ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
 set_target_properties(CSPgui PROPERTIES
                             SOVERSION ${THIS_LIB_VERSION}
@@ -202,6 +203,7 @@ target_link_libraries(CSPgui PUBLIC
          Qt5::OpenGL
          Qt5::Widgets
          ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
 
 set_target_properties(CSPgui PROPERTIES 
index 911bbe1..00d5da8 100644 (file)
@@ -195,6 +195,7 @@ target_link_libraries(CSPcommon_vm PRIVATE
 #        Qt5::OpenGL
 #        Qt5::Widgets
          ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
 set_target_properties(CSPcommon_vm PROPERTIES
                             SOVERSION ${THIS_LIB_VERSION}
index e865a0f..f1eff57 100644 (file)
@@ -20,6 +20,7 @@ if(WIN32)
        )
        target_link_libraries(CSPfmgen
                PRIVATE CSPemu_utils
+                ${ADDITIONAL_DLL_LIBRARIES}
        )
 
        set_target_properties(CSPfmgen PROPERTIES