# VScode + SDL2 + MSYS2 Envrioment Create
MAKE STYLE
https://lazyfoo.net/tutorials/SDL/01_hello_SDL/index.php
CMAKE STYLE
https://www.willusher.io/sdl2%20tutorials/2013/08/17/lesson-1-hello-world
https://trenki2.github.io/blog/2017/06/02/using-sdl2-with-cmake/
## 在MSYS 安裝 GCC GDB SDL2
```bash
case "$MSYSTEM" in
  UCRT64)
    pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc \
    mingw-w64-ucrt-x86_64-gdb \
    mingw-w64-ucrt-x86_64-global \
    mingw-w64-ucrt-x86_64-SDL2 \
    mingw-w64-ucrt-x86_64-make \
    mingw-w64-ucrt-x86_64-cmake
    ;;
  MINGW64)
    pacman -S --noconfirm mingw-w64-x86_64-gcc \
    mingw-w64-x86_64-gdb \
    mingw-w64-x86_64-global \
    mingw-w64-x86_64-SDL2 \
    mingw-w64-x86_64-make \
    mingw-w64-x86_64-cmake
    ;;
  *)
    echo "Unsupported or unknown MSYS2 environment: $MSYSTEM"
    exit 1
    ;;
esac
```
32bit
```shell=
pacman -S mingw-w64-i686-SDL2
```
add alias 
> alias make=mingw32-make
# VSCODE 步驟


# VSCODE CMAKE 最後結果

```cmake=
cmake_minimum_required(VERSION 3.0.0)
project(SDL2_HELLOWLRD VERSION 0.1.0)
include(CTest)
enable_testing()
find_package(SDL2 REQUIRED)
include_directories(SDL2_HELLOWLRD ${SDL2_INCLUDE_DIRS})
add_executable(SDL2_HELLOWLRD main.c)
target_link_libraries(SDL2_HELLOWLRD ${SDL2_LIBRARIES})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
```
# Main.c
```cpp=
#include "SDL.h" 
int main(int argc, char *argv[])
{
  SDL_Init(SDL_INIT_VIDEO);
  SDL_Window *window = SDL_CreateWindow(
    "SDL2Test",
    SDL_WINDOWPOS_UNDEFINED,
    SDL_WINDOWPOS_UNDEFINED,
    640,
    480,
    0
  );
  SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE);
  SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
  SDL_RenderClear(renderer);
  SDL_RenderPresent(renderer);
  SDL_Delay(3000);
  SDL_DestroyWindow(window);
  SDL_Quit();
  return 0;
}
```