<commit_before>cmake_minimum_required(VERSION 2.8)

find_package(PkgConfig)

project(OpenSiv3D_Linux CXX)
enable_language(C)

#set(CMAKE_CXX_COMPILER "clang++")
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_FLAGS "-std=c++17 -Wall -Wextra -Wno-unknown-pragmas")
set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O0 -pg")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -march=native")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g3 -Og -pg")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -march=native")

#set(CMAKE_BUILD_TYPE Release)

# In current version, Wayland and Mir are not supported.
set(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" ON)
# set(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
# set(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)

if (_SIV3D_LINUX_WINDOW_API_X11)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" ON)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)
elseif (_SIV3D_LINUX_WINDOW_API_WAYLAND)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" ON)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)
elseif (_SIV3D_LINUX_WINDOW_API_MIR)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" ON)
endif()
configure_file(./Siv3D_Linux_GLFW_Window_API.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Siv3D_Linux_GLFW_Window_API.h)

pkg_check_modules(LIBSIV3D REQUIRED glib-2.0 gobject-2.0 gio-2.0 gl libpng libjpeg x11 xi xinerama xcursor xrandr)
include_directories(
	"/usr/include"
	"/usr/include/freetype2"

	"."
	"../Siv3D/Include"
	"../Siv3D/Source/ThirdParty/zstd"
	"../Siv3D/Source/ThirdParty/zstd/common"
	"../Siv3D/Source/ThirdParty/"

	${LIBSIV3D_INCLUDE_DIRS}
)

set(SOURCE_FILES
	"../Siv3D/Source/Siv3D/Audio/AL/CAudio_AL.cpp"
	"../Siv3D/Source/Siv3D/Audio/AudioFactory.cpp"
	"../Siv3D/Source/Siv3D/Audio/SivAudio.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/AudioFormatFactory.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/CAudioFormat.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/SivAudioFormat.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/WAVE/AudioFormat_WAVE.cpp"
	"../Siv3D/Source/Siv3D/Base64/SivBase64.cpp"
	"../Siv3D/Source/Siv3D/Bezier2/SivBezier2.cpp"
	"../Siv3D/Source/Siv3D/Bezier3/SivBezier3.cpp"
	"../Siv3D/Source/Siv3D/BigFloat/SivBigFloat.cpp"
	"../Siv3D/Source/Siv3D/BigInt/SivBigInt.cpp"
	"../Siv3D/Source/Siv3D/BinaryReader/SivBinaryReader.cpp"
	"../Siv3D/Source/Siv3D/BinaryReader/CBinaryReader_Linux.cpp"
	"../Siv3D/Source/Siv3D/BinaryWriter/SivBinaryWriter.cpp"
	"../Siv3D/Source/Siv3D/BinaryWriter/CBinaryWriter_Linux.cpp"
	"../Siv3D/Source/Siv3D/BlendState/SivBlendState.cpp"
	"../Siv3D/Source/Siv3D/ByteArray/CByteArray.cpp"
	"../Siv3D/Source/Siv3D/ByteArray/SivByteArray.cpp"
	"../Siv3D/Source/Siv3D/ByteArrayView/SivByteArrayView.cpp"
	"../Siv3D/Source/Siv3D/CPU/CCPU.cpp"
	"../Siv3D/Source/Siv3D/CPU/CPUFactory.cpp"
	"../Siv3D/Source/Siv3D/CPU/SivCPU.cpp"
	"../Siv3D/Source/Siv3D/CharacterSet/SivCharacterSet.cpp"
	"../Siv3D/Source/Siv3D/Circle/SivCircle.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/CClipboard_Linux.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/ClipboardFactory.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/SivClipboard.cpp"
	"../Siv3D/Source/Siv3D/Color/SivColor.cpp"
	"../Siv3D/Source/Siv3D/Compression/SivCompression.cpp"
	"../Siv3D/Source/Siv3D/Console/CConsole.cpp"
	"../Siv3D/Source/Siv3D/Console/ConsoleFactory.cpp"
	"../Siv3D/Source/Siv3D/Console/SivConsole.cpp"
	"../Siv3D/Source/Siv3D/ConstantBuffer/GL/GLConstantBuffer.cpp"
	"../Siv3D/Source/Siv3D/ConstantBuffer/SivConstantBuffer.cpp"
	"../Siv3D/Source/Siv3D/Cursor/CCursor_Linux.cpp"
	"../Siv3D/Source/Siv3D/Cursor/CursorFactory.cpp"
	"../Siv3D/Source/Siv3D/Cursor/SivCursor.cpp"
	"../Siv3D/Source/Siv3D/Date/SivDate.cpp"
	"../Siv3D/Source/Siv3D/DateTime/SivDateTime.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/CDragDrop_Linux.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/DragDropFactory.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/SivDragDrop.cpp"
	"../Siv3D/Source/Siv3D/DynamicTexture/SivDynamicTexture.cpp"
	"../Siv3D/Source/Siv3D/Effect/CEffect.cpp"
	"../Siv3D/Source/Siv3D/Effect/EffectData.cpp"
	"../Siv3D/Source/Siv3D/Effect/EffectFactory.cpp"
	"../Siv3D/Source/Siv3D/Effect/SivEffect.cpp"
	"../Siv3D/Source/Siv3D/Ellipse/SivEllipse.cpp"
	"../Siv3D/Source/Siv3D/Emoji/SivEmoji.cpp"
	"../Siv3D/Source/Siv3D/EngineDirectory/EngineDirectory.cpp"
	"../Siv3D/Source/Siv3D/FileSystem/SivFileSystem.cpp"
	"../Siv3D/Source/Siv3D/FileSystem/SivFileSystem_Linux.cpp"
	"../Siv3D/Source/Siv3D/Font/CFont.cpp"
	"../Siv3D/Source/Siv3D/Font/EmojiDatabase.cpp"
	"../Siv3D/Source/Siv3D/Font/FontData.cpp"
	"../Siv3D/Source/Siv3D/Font/FontFactory.cpp"
	"../Siv3D/Source/Siv3D/Font/SivFont.cpp"
	"../Siv3D/Source/Siv3D/Format/SivFormat.cpp"
	"../Siv3D/Source/Siv3D/FormatBool/SivFormatBool.cpp"
	"../Siv3D/Source/Siv3D/FormatFloat/SivFormatFloat.cpp"
	"../Siv3D/Source/Siv3D/FormatInt/SivFormatInt.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/CGraphics_D3D11.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/Device/D3D11Device.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/RenderTarget/D3D11RenderTarget.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/SwapChain/D3D11SwapChain.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/CGraphics_GL.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/BlendState/GLBlendState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/RasterizerState/GLRasterizerState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/SamplerState/GLSamplerState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GraphicsFactory.cpp"
	"../Siv3D/Source/Siv3D/Graphics/SivGraphics.cpp"
	"../Siv3D/Source/Siv3D/Graphics2D/SivGraphics2D.cpp"
	"../Siv3D/Source/Siv3D/Geometry2D/SivGeometry2D.cpp"
	"../Siv3D/Source/Siv3D/HSV/SivHSV.cpp"
	"../Siv3D/Source/Siv3D/INIReader/CINIReader.cpp"
	"../Siv3D/Source/Siv3D/INIReader/SivINIReader.cpp"
	"../Siv3D/Source/Siv3D/Icon/SivIcon.cpp"
	"../Siv3D/Source/Siv3D/Image/SivImage.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/BMP/ImageFormat_BMP.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/GIF/ImageFormat_GIF.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/JPEG/ImageFormat_JPEG.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/PNG/ImageFormat_PNG.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/CImageFormat.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/ImageFormatFactory.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/SivImageFormat.cpp"
	"../Siv3D/Source/Siv3D/ImageProcessing/SivImageProcessing.cpp"
	"../Siv3D/Source/Siv3D/JSONReader/SivJSONReader.cpp"
	"../Siv3D/Source/Siv3D/Key/SivKey.cpp"
	"../Siv3D/Source/Siv3D/Keyboard/CKeyboard_Linux.cpp"
	"../Siv3D/Source/Siv3D/Keyboard/KeyboardFactory.cpp"
	"../Siv3D/Source/Siv3D/Line/SivLine.cpp"
	"../Siv3D/Source/Siv3D/LineString/SivLineString.cpp"
	"../Siv3D/Source/Siv3D/Logger/CLogger.cpp"
	"../Siv3D/Source/Siv3D/Logger/LoggerFactory.cpp"
	"../Siv3D/Source/Siv3D/Logger/SivLogger.cpp"
	"../Siv3D/Source/Siv3D/MD5/SivMD5.cpp"
	"../Siv3D/Source/Siv3D/MathParser/CMathParser.cpp"
	"../Siv3D/Source/Siv3D/MathParser/SivMathParser.cpp"
	"../Siv3D/Source/Siv3D/MemoryMapping/CMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/MemoryMapping/SivMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/MemoryWriter/CMemoryWriter.cpp"
	"../Siv3D/Source/Siv3D/MemoryWriter/SivMemoryWriter.cpp"
	"../Siv3D/Source/Siv3D/MessageBox/SivMessageBox_Linux.cpp"
	"../Siv3D/Source/Siv3D/Monitor/SivMonitor.cpp"
	"../Siv3D/Source/Siv3D/Mouse/CMouse_Linux.cpp"
	"../Siv3D/Source/Siv3D/Mouse/MouseFactory.cpp"
	"../Siv3D/Source/Siv3D/Mouse/SivMouse.cpp"
	"../Siv3D/Source/Siv3D/ParseFloat/SivParseFloat.cpp"
	"../Siv3D/Source/Siv3D/PerlinNoise/SivPerlinNoise.cpp"
	"../Siv3D/Source/Siv3D/PixelShader/SivPixelShader.cpp"
	"../Siv3D/Source/Siv3D/Point/SivPoint.cpp"
	"../Siv3D/Source/Siv3D/Polygon/CPolygon.cpp"
	"../Siv3D/Source/Siv3D/Polygon/SivPolygon.cpp"
	"../Siv3D/Source/Siv3D/PowerStatus/SivPowerStatus.cpp"
	"../Siv3D/Source/Siv3D/Print/CPrint.cpp"
	"../Siv3D/Source/Siv3D/Print/PrintFactory.cpp"
	"../Siv3D/Source/Siv3D/Print/SivPrint.cpp"
	"../Siv3D/Source/Siv3D/Profiler/CProfiler.cpp"
	"../Siv3D/Source/Siv3D/Profiler/ProfilerFactory.cpp"
	"../Siv3D/Source/Siv3D/Profiler/SivProfiler.cpp"
	"../Siv3D/Source/Siv3D/RasterizerState/SivRasterizerState.cpp"
	"../Siv3D/Source/Siv3D/Rectangle/SivRectangle.cpp"
	"../Siv3D/Source/Siv3D/RenderTexture/SivRenderTexture.cpp"
	"../Siv3D/Source/Siv3D/Renderer2D/GL/CRenderer2D_GL.cpp"
	"../Siv3D/Source/Siv3D/Renderer2D/Renderer2DFactory.cpp"
	"../Siv3D/Source/Siv3D/Resource/SivResource.cpp"
	"../Siv3D/Source/Siv3D/RoundRect/SivRoundRect.cpp"
	"../Siv3D/Source/Siv3D/SamplerState/SivSamplerState.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/CScreenCapture.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/ScreenCaptureFactory.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/SivScreenCapture.cpp"
	"../Siv3D/Source/Siv3D/Shader/GL/CShader_GL.cpp"
	"../Siv3D/Source/Siv3D/Shader/ShaderFactory.cpp"
	"../Siv3D/Source/Siv3D/Shader/SivShader.cpp"
	"../Siv3D/Source/Siv3D/Shape2D/SivShape2D.cpp"
	"../Siv3D/Source/Siv3D/Siv3DEngine.cpp"
	"../Siv3D/Source/Siv3D/Sprite/SivSprite.cpp"
	"../Siv3D/Source/Siv3D/Stopwatch/SivStopwatch.cpp"
	"../Siv3D/Source/Siv3D/String/SivString.cpp"
	"../Siv3D/Source/Siv3D/System/CSystem_Linux.cpp"
	"../Siv3D/Source/Siv3D/System/SystemFactory.cpp"
	"../Siv3D/Source/Siv3D/System/SivSystem.cpp"
	"../Siv3D/Source/Siv3D/CharacterEncoding/SivCharacterEncoding.cpp"
	"../Siv3D/Source/Siv3D/TextBox/CTextBox.cpp"
	"../Siv3D/Source/Siv3D/TextBox/SivTextBox.cpp"
	"../Siv3D/Source/Siv3D/TextInput/CTextInput_macOS.cpp"
	"../Siv3D/Source/Siv3D/TextInput/SivTextInput.cpp"
	"../Siv3D/Source/Siv3D/TextInput/TextInputFactory.cpp"
	"../Siv3D/Source/Siv3D/TextReader/CTextReader.cpp"
	"../Siv3D/Source/Siv3D/TextReader/CTextReader_Linux.cpp"
	"../Siv3D/Source/Siv3D/TextReader/SivTextReader.cpp"
	"../Siv3D/Source/Siv3D/TextWriter/CTextWriter.cpp"
	"../Siv3D/Source/Siv3D/TextWriter/SivTextWriter.cpp"
	"../Siv3D/Source/Siv3D/Texture/GL/CTextureGL.cpp"
	"../Siv3D/Source/Siv3D/Texture/GL/Texture_GL.cpp"
	"../Siv3D/Source/Siv3D/Texture/SivTexture.cpp"
	"../Siv3D/Source/Siv3D/Texture/TextureFactory.cpp"
	"../Siv3D/Source/Siv3D/TextureRegion/SivTextureRegion.cpp"
	"../Siv3D/Source/Siv3D/TexturedCircle/SivTexturedCircle.cpp"
	"../Siv3D/Source/Siv3D/TexturedQuad/SivTexturedQuad.cpp"
	"../Siv3D/Source/Siv3D/TexturedRoundRect/SivTexturedRoundRect.cpp"
	"../Siv3D/Source/Siv3D/Threading/SivThreading.cpp"
	"../Siv3D/Source/Siv3D/Time/SivTime.cpp"
	"../Siv3D/Source/Siv3D/TimeProfiler/SivTimeProfiler.cpp"
	"../Siv3D/Source/Siv3D/Triangle/SivTriangle.cpp"
	"../Siv3D/Source/Siv3D/Vector2D/SivVector2D.cpp"
	"../Siv3D/Source/Siv3D/Vector3D/SivVector3D.cpp"
	"../Siv3D/Source/Siv3D/Vector4D/SivVector4D.cpp"
	"../Siv3D/Source/Siv3D/VertexShader/SivVertexShader.cpp"
	"../Siv3D/Source/Siv3D/Wave/SivWave.cpp"
	"../Siv3D/Source/Siv3D/Window/CWindow_Linux.cpp"
	"../Siv3D/Source/Siv3D/Window/SivWindow.cpp"
	"../Siv3D/Source/Siv3D/Window/WindowFactory.cpp"
	"../Siv3D/Source/Siv3D/WritableMemoryMapping/CWritableMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/WritableMemoryMapping/SivWritableMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/XXHash/SivXXHash.cpp"

	"../Siv3D/Source/Siv3D/Siv3DMain_Linux.cpp"

	"../Siv3D/Source/ThirdParty/FID/FID.cpp"
	"../Siv3D/Source/ThirdParty/FeatureDetector/cpu_x86.cpp"
	"../Siv3D/Source/ThirdParty/FeatureDetector/cpu_x86_Linux.ipp"
	"../Siv3D/Source/ThirdParty/clip2tri/clip2tri.cpp"
	"../Siv3D/Source/ThirdParty/clipper/clipper.cpp"
	"../Siv3D/Source/ThirdParty/double-conversion/bignum-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/bignum.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/cached-powers.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/diy-fp.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/double-conversion.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/fast-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/fixed-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/strtod.cc"
	"../Siv3D/Source/ThirdParty/fmt/format.cc"
	"../Siv3D/Source/ThirdParty/md5/md5.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParser.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserBase.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserBytecode.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserCallback.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserDLL.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserError.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserInt.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserTokenReader.cpp"
	"../Siv3D/Source/ThirdParty/zstd/common/entropy_common.c"
	"../Siv3D/Source/ThirdParty/zstd/common/error_private.c"
	"../Siv3D/Source/ThirdParty/zstd/common/fse_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/common/pool.c"
	"../Siv3D/Source/ThirdParty/zstd/common/threading.c"
	"../Siv3D/Source/ThirdParty/zstd/common/xxhash.c"
	"../Siv3D/Source/ThirdParty/zstd/common/zstd_common.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/fse_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/huf_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/zstd_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/zstdmt_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/decompress/huf_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/decompress/zstd_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/cover.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/divsufsort.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/zdict.c"
	"../Siv3D/Source/ThirdParty/butteraugli/butteraugli.cc"
	"../Siv3D/Source/ThirdParty/guetzli/butteraugli_comparator.cc"
	"../Siv3D/Source/ThirdParty/guetzli/dct_double.cc"
	"../Siv3D/Source/ThirdParty/guetzli/debug_print.cc"
	"../Siv3D/Source/ThirdParty/guetzli/entropy_encode.cc"
	"../Siv3D/Source/ThirdParty/guetzli/fdct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/gamma_correct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/idct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_decoder.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_encoder.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_reader.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_writer.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_huffman_decode.cc"
	"../Siv3D/Source/ThirdParty/guetzli/output_image.cc"
	"../Siv3D/Source/ThirdParty/guetzli/preprocess_downsample.cc"
	"../Siv3D/Source/ThirdParty/guetzli/processor.cc"
	"../Siv3D/Source/ThirdParty/guetzli/quality.cc"
	"../Siv3D/Source/ThirdParty/guetzli/quantize.cc"
	"../Siv3D/Source/ThirdParty/guetzli/score.cc"
	"../Siv3D/Source/ThirdParty/guetzli/score.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/common/shapes.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/advancing_front.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/cdt.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/sweep.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/sweep_context.cc"

	# GLFW
	# common files
	"../Siv3D/Source/ThirdParty/GLFW/deps/glad.c"

	"../Siv3D/Source/ThirdParty/GLFW/src/context.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/init.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/input.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/monitor.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/vulkan.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/window.c"

	"../Siv3D/Source/ThirdParty/GLFW/src/linux_joystick.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/posix_time.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/posix_tls.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/xkb_unicode.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/egl_context.c"
)

if (_SIV3D_LINUX_WINDOW_API_X11)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_window.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/glx_context.c"
	)
elseif (_SIV3D_LINUX_WINDOW_API_WAYLAND)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_window.c"
	)
elseif (_SIV3D_LINUX_WINDOW_API_MIR)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_window.c"
	)
endif()

add_library(Siv3D STATIC ${SOURCE_FILES})

target_link_libraries(Siv3D
)

<commit_msg>CMakeLists.txt<commit_after>cmake_minimum_required(VERSION 2.8)

find_package(PkgConfig)

project(OpenSiv3D_Linux CXX)
enable_language(C)

#set(CMAKE_CXX_COMPILER "clang++")
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_FLAGS "-std=c++17 -Wall -Wextra -Wno-unknown-pragmas -fPIC")
set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O0 -pg")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -march=native")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g3 -Og -pg")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -march=native")

#set(CMAKE_BUILD_TYPE Release)

# In current version, Wayland and Mir are not supported.
set(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" ON)
# set(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
# set(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)

if (_SIV3D_LINUX_WINDOW_API_X11)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" ON)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)
elseif (_SIV3D_LINUX_WINDOW_API_WAYLAND)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" ON)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" OFF)
elseif (_SIV3D_LINUX_WINDOW_API_MIR)
	option(_SIV3D_LINUX_WINDOW_API_X11 "Use X11 for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_WAYLAND "Use Wayland for window creation" OFF)
	option(_SIV3D_LINUX_WINDOW_API_MIR "Use Mir for window creation" ON)
endif()
configure_file(./Siv3D_Linux_GLFW_Window_API.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Siv3D_Linux_GLFW_Window_API.h)

pkg_check_modules(LIBSIV3D REQUIRED glib-2.0 gobject-2.0 gio-2.0 gl libpng libjpeg x11 xi xinerama xcursor xrandr)
include_directories(
	"/usr/include"
	"/usr/include/freetype2"

	"."
	"../Siv3D/Include"
	"../Siv3D/Source/ThirdParty/zstd"
	"../Siv3D/Source/ThirdParty/zstd/common"
	"../Siv3D/Source/ThirdParty/"

	${LIBSIV3D_INCLUDE_DIRS}
)

set(SOURCE_FILES
	"../Siv3D/Source/Siv3D/Audio/AL/CAudio_AL.cpp"
	"../Siv3D/Source/Siv3D/Audio/AudioFactory.cpp"
	"../Siv3D/Source/Siv3D/Audio/SivAudio.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/AudioFormatFactory.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/CAudioFormat.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/SivAudioFormat.cpp"
	"../Siv3D/Source/Siv3D/AudioFormat/WAVE/AudioFormat_WAVE.cpp"
	"../Siv3D/Source/Siv3D/Base64/SivBase64.cpp"
	"../Siv3D/Source/Siv3D/Bezier2/SivBezier2.cpp"
	"../Siv3D/Source/Siv3D/Bezier3/SivBezier3.cpp"
	"../Siv3D/Source/Siv3D/BigFloat/SivBigFloat.cpp"
	"../Siv3D/Source/Siv3D/BigInt/SivBigInt.cpp"
	"../Siv3D/Source/Siv3D/BinaryReader/SivBinaryReader.cpp"
	"../Siv3D/Source/Siv3D/BinaryReader/CBinaryReader_Linux.cpp"
	"../Siv3D/Source/Siv3D/BinaryWriter/SivBinaryWriter.cpp"
	"../Siv3D/Source/Siv3D/BinaryWriter/CBinaryWriter_Linux.cpp"
	"../Siv3D/Source/Siv3D/BlendState/SivBlendState.cpp"
	"../Siv3D/Source/Siv3D/ByteArray/CByteArray.cpp"
	"../Siv3D/Source/Siv3D/ByteArray/SivByteArray.cpp"
	"../Siv3D/Source/Siv3D/ByteArrayView/SivByteArrayView.cpp"
	"../Siv3D/Source/Siv3D/CPU/CCPU.cpp"
	"../Siv3D/Source/Siv3D/CPU/CPUFactory.cpp"
	"../Siv3D/Source/Siv3D/CPU/SivCPU.cpp"
	"../Siv3D/Source/Siv3D/CharacterSet/SivCharacterSet.cpp"
	"../Siv3D/Source/Siv3D/Circle/SivCircle.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/CClipboard_Linux.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/ClipboardFactory.cpp"
	"../Siv3D/Source/Siv3D/Clipboard/SivClipboard.cpp"
	"../Siv3D/Source/Siv3D/Color/SivColor.cpp"
	"../Siv3D/Source/Siv3D/Compression/SivCompression.cpp"
	"../Siv3D/Source/Siv3D/Console/CConsole.cpp"
	"../Siv3D/Source/Siv3D/Console/ConsoleFactory.cpp"
	"../Siv3D/Source/Siv3D/Console/SivConsole.cpp"
	"../Siv3D/Source/Siv3D/ConstantBuffer/GL/GLConstantBuffer.cpp"
	"../Siv3D/Source/Siv3D/ConstantBuffer/SivConstantBuffer.cpp"
	"../Siv3D/Source/Siv3D/Cursor/CCursor_Linux.cpp"
	"../Siv3D/Source/Siv3D/Cursor/CursorFactory.cpp"
	"../Siv3D/Source/Siv3D/Cursor/SivCursor.cpp"
	"../Siv3D/Source/Siv3D/Date/SivDate.cpp"
	"../Siv3D/Source/Siv3D/DateTime/SivDateTime.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/CDragDrop_Linux.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/DragDropFactory.cpp"
	"../Siv3D/Source/Siv3D/DragDrop/SivDragDrop.cpp"
	"../Siv3D/Source/Siv3D/DynamicTexture/SivDynamicTexture.cpp"
	"../Siv3D/Source/Siv3D/Effect/CEffect.cpp"
	"../Siv3D/Source/Siv3D/Effect/EffectData.cpp"
	"../Siv3D/Source/Siv3D/Effect/EffectFactory.cpp"
	"../Siv3D/Source/Siv3D/Effect/SivEffect.cpp"
	"../Siv3D/Source/Siv3D/Ellipse/SivEllipse.cpp"
	"../Siv3D/Source/Siv3D/Emoji/SivEmoji.cpp"
	"../Siv3D/Source/Siv3D/EngineDirectory/EngineDirectory.cpp"
	"../Siv3D/Source/Siv3D/FileSystem/SivFileSystem.cpp"
	"../Siv3D/Source/Siv3D/FileSystem/SivFileSystem_Linux.cpp"
	"../Siv3D/Source/Siv3D/Font/CFont.cpp"
	"../Siv3D/Source/Siv3D/Font/EmojiDatabase.cpp"
	"../Siv3D/Source/Siv3D/Font/FontData.cpp"
	"../Siv3D/Source/Siv3D/Font/FontFactory.cpp"
	"../Siv3D/Source/Siv3D/Font/SivFont.cpp"
	"../Siv3D/Source/Siv3D/Format/SivFormat.cpp"
	"../Siv3D/Source/Siv3D/FormatBool/SivFormatBool.cpp"
	"../Siv3D/Source/Siv3D/FormatFloat/SivFormatFloat.cpp"
	"../Siv3D/Source/Siv3D/FormatInt/SivFormatInt.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/CGraphics_D3D11.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/Device/D3D11Device.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/RenderTarget/D3D11RenderTarget.cpp"
	"../Siv3D/Source/Siv3D/Graphics/D3D11/SwapChain/D3D11SwapChain.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/CGraphics_GL.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/BlendState/GLBlendState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/RasterizerState/GLRasterizerState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GL/SamplerState/GLSamplerState.cpp"
	"../Siv3D/Source/Siv3D/Graphics/GraphicsFactory.cpp"
	"../Siv3D/Source/Siv3D/Graphics/SivGraphics.cpp"
	"../Siv3D/Source/Siv3D/Graphics2D/SivGraphics2D.cpp"
	"../Siv3D/Source/Siv3D/Geometry2D/SivGeometry2D.cpp"
	"../Siv3D/Source/Siv3D/HSV/SivHSV.cpp"
	"../Siv3D/Source/Siv3D/INIReader/CINIReader.cpp"
	"../Siv3D/Source/Siv3D/INIReader/SivINIReader.cpp"
	"../Siv3D/Source/Siv3D/Icon/SivIcon.cpp"
	"../Siv3D/Source/Siv3D/Image/SivImage.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/BMP/ImageFormat_BMP.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/GIF/ImageFormat_GIF.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/JPEG/ImageFormat_JPEG.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/PNG/ImageFormat_PNG.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/CImageFormat.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/ImageFormatFactory.cpp"
	"../Siv3D/Source/Siv3D/ImageFormat/SivImageFormat.cpp"
	"../Siv3D/Source/Siv3D/ImageProcessing/SivImageProcessing.cpp"
	"../Siv3D/Source/Siv3D/JSONReader/SivJSONReader.cpp"
	"../Siv3D/Source/Siv3D/Key/SivKey.cpp"
	"../Siv3D/Source/Siv3D/Keyboard/CKeyboard_Linux.cpp"
	"../Siv3D/Source/Siv3D/Keyboard/KeyboardFactory.cpp"
	"../Siv3D/Source/Siv3D/Line/SivLine.cpp"
	"../Siv3D/Source/Siv3D/LineString/SivLineString.cpp"
	"../Siv3D/Source/Siv3D/Logger/CLogger.cpp"
	"../Siv3D/Source/Siv3D/Logger/LoggerFactory.cpp"
	"../Siv3D/Source/Siv3D/Logger/SivLogger.cpp"
	"../Siv3D/Source/Siv3D/MD5/SivMD5.cpp"
	"../Siv3D/Source/Siv3D/MathParser/CMathParser.cpp"
	"../Siv3D/Source/Siv3D/MathParser/SivMathParser.cpp"
	"../Siv3D/Source/Siv3D/MemoryMapping/CMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/MemoryMapping/SivMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/MemoryWriter/CMemoryWriter.cpp"
	"../Siv3D/Source/Siv3D/MemoryWriter/SivMemoryWriter.cpp"
	"../Siv3D/Source/Siv3D/MessageBox/SivMessageBox_Linux.cpp"
	"../Siv3D/Source/Siv3D/Monitor/SivMonitor.cpp"
	"../Siv3D/Source/Siv3D/Mouse/CMouse_Linux.cpp"
	"../Siv3D/Source/Siv3D/Mouse/MouseFactory.cpp"
	"../Siv3D/Source/Siv3D/Mouse/SivMouse.cpp"
	"../Siv3D/Source/Siv3D/ParseFloat/SivParseFloat.cpp"
	"../Siv3D/Source/Siv3D/PerlinNoise/SivPerlinNoise.cpp"
	"../Siv3D/Source/Siv3D/PixelShader/SivPixelShader.cpp"
	"../Siv3D/Source/Siv3D/Point/SivPoint.cpp"
	"../Siv3D/Source/Siv3D/Polygon/CPolygon.cpp"
	"../Siv3D/Source/Siv3D/Polygon/SivPolygon.cpp"
	"../Siv3D/Source/Siv3D/PowerStatus/SivPowerStatus.cpp"
	"../Siv3D/Source/Siv3D/Print/CPrint.cpp"
	"../Siv3D/Source/Siv3D/Print/PrintFactory.cpp"
	"../Siv3D/Source/Siv3D/Print/SivPrint.cpp"
	"../Siv3D/Source/Siv3D/Profiler/CProfiler.cpp"
	"../Siv3D/Source/Siv3D/Profiler/ProfilerFactory.cpp"
	"../Siv3D/Source/Siv3D/Profiler/SivProfiler.cpp"
	"../Siv3D/Source/Siv3D/RasterizerState/SivRasterizerState.cpp"
	"../Siv3D/Source/Siv3D/Rectangle/SivRectangle.cpp"
	"../Siv3D/Source/Siv3D/RenderTexture/SivRenderTexture.cpp"
	"../Siv3D/Source/Siv3D/Renderer2D/GL/CRenderer2D_GL.cpp"
	"../Siv3D/Source/Siv3D/Renderer2D/Renderer2DFactory.cpp"
	"../Siv3D/Source/Siv3D/Resource/SivResource.cpp"
	"../Siv3D/Source/Siv3D/RoundRect/SivRoundRect.cpp"
	"../Siv3D/Source/Siv3D/SamplerState/SivSamplerState.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/CScreenCapture.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/ScreenCaptureFactory.cpp"
	"../Siv3D/Source/Siv3D/ScreenCapture/SivScreenCapture.cpp"
	"../Siv3D/Source/Siv3D/Shader/GL/CShader_GL.cpp"
	"../Siv3D/Source/Siv3D/Shader/ShaderFactory.cpp"
	"../Siv3D/Source/Siv3D/Shader/SivShader.cpp"
	"../Siv3D/Source/Siv3D/Shape2D/SivShape2D.cpp"
	"../Siv3D/Source/Siv3D/Siv3DEngine.cpp"
	"../Siv3D/Source/Siv3D/Sprite/SivSprite.cpp"
	"../Siv3D/Source/Siv3D/Stopwatch/SivStopwatch.cpp"
	"../Siv3D/Source/Siv3D/String/SivString.cpp"
	"../Siv3D/Source/Siv3D/System/CSystem_Linux.cpp"
	"../Siv3D/Source/Siv3D/System/SystemFactory.cpp"
	"../Siv3D/Source/Siv3D/System/SivSystem.cpp"
	"../Siv3D/Source/Siv3D/CharacterEncoding/SivCharacterEncoding.cpp"
	"../Siv3D/Source/Siv3D/TextBox/CTextBox.cpp"
	"../Siv3D/Source/Siv3D/TextBox/SivTextBox.cpp"
	"../Siv3D/Source/Siv3D/TextInput/CTextInput_macOS.cpp"
	"../Siv3D/Source/Siv3D/TextInput/SivTextInput.cpp"
	"../Siv3D/Source/Siv3D/TextInput/TextInputFactory.cpp"
	"../Siv3D/Source/Siv3D/TextReader/CTextReader.cpp"
	"../Siv3D/Source/Siv3D/TextReader/CTextReader_Linux.cpp"
	"../Siv3D/Source/Siv3D/TextReader/SivTextReader.cpp"
	"../Siv3D/Source/Siv3D/TextWriter/CTextWriter.cpp"
	"../Siv3D/Source/Siv3D/TextWriter/SivTextWriter.cpp"
	"../Siv3D/Source/Siv3D/Texture/GL/CTextureGL.cpp"
	"../Siv3D/Source/Siv3D/Texture/GL/Texture_GL.cpp"
	"../Siv3D/Source/Siv3D/Texture/SivTexture.cpp"
	"../Siv3D/Source/Siv3D/Texture/TextureFactory.cpp"
	"../Siv3D/Source/Siv3D/TextureRegion/SivTextureRegion.cpp"
	"../Siv3D/Source/Siv3D/TexturedCircle/SivTexturedCircle.cpp"
	"../Siv3D/Source/Siv3D/TexturedQuad/SivTexturedQuad.cpp"
	"../Siv3D/Source/Siv3D/TexturedRoundRect/SivTexturedRoundRect.cpp"
	"../Siv3D/Source/Siv3D/Threading/SivThreading.cpp"
	"../Siv3D/Source/Siv3D/Time/SivTime.cpp"
	"../Siv3D/Source/Siv3D/TimeProfiler/SivTimeProfiler.cpp"
	"../Siv3D/Source/Siv3D/Triangle/SivTriangle.cpp"
	"../Siv3D/Source/Siv3D/Vector2D/SivVector2D.cpp"
	"../Siv3D/Source/Siv3D/Vector3D/SivVector3D.cpp"
	"../Siv3D/Source/Siv3D/Vector4D/SivVector4D.cpp"
	"../Siv3D/Source/Siv3D/VertexShader/SivVertexShader.cpp"
	"../Siv3D/Source/Siv3D/Wave/SivWave.cpp"
	"../Siv3D/Source/Siv3D/Window/CWindow_Linux.cpp"
	"../Siv3D/Source/Siv3D/Window/SivWindow.cpp"
	"../Siv3D/Source/Siv3D/Window/WindowFactory.cpp"
	"../Siv3D/Source/Siv3D/WritableMemoryMapping/CWritableMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/WritableMemoryMapping/SivWritableMemoryMapping.cpp"
	"../Siv3D/Source/Siv3D/XXHash/SivXXHash.cpp"

	"../Siv3D/Source/Siv3D/Siv3DMain_Linux.cpp"

	"../Siv3D/Source/ThirdParty/FID/FID.cpp"
	"../Siv3D/Source/ThirdParty/FeatureDetector/cpu_x86.cpp"
	"../Siv3D/Source/ThirdParty/FeatureDetector/cpu_x86_Linux.ipp"
	"../Siv3D/Source/ThirdParty/clip2tri/clip2tri.cpp"
	"../Siv3D/Source/ThirdParty/clipper/clipper.cpp"
	"../Siv3D/Source/ThirdParty/double-conversion/bignum-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/bignum.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/cached-powers.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/diy-fp.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/double-conversion.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/fast-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/fixed-dtoa.cc"
	"../Siv3D/Source/ThirdParty/double-conversion/strtod.cc"
	"../Siv3D/Source/ThirdParty/fmt/format.cc"
	"../Siv3D/Source/ThirdParty/md5/md5.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParser.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserBase.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserBytecode.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserCallback.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserDLL.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserError.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserInt.cpp"
	"../Siv3D/Source/ThirdParty/muparser/muParserTokenReader.cpp"
	"../Siv3D/Source/ThirdParty/zstd/common/entropy_common.c"
	"../Siv3D/Source/ThirdParty/zstd/common/error_private.c"
	"../Siv3D/Source/ThirdParty/zstd/common/fse_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/common/pool.c"
	"../Siv3D/Source/ThirdParty/zstd/common/threading.c"
	"../Siv3D/Source/ThirdParty/zstd/common/xxhash.c"
	"../Siv3D/Source/ThirdParty/zstd/common/zstd_common.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/fse_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/huf_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/zstd_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/compress/zstdmt_compress.c"
	"../Siv3D/Source/ThirdParty/zstd/decompress/huf_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/decompress/zstd_decompress.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/cover.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/divsufsort.c"
	"../Siv3D/Source/ThirdParty/zstd/dictBuilder/zdict.c"
	"../Siv3D/Source/ThirdParty/butteraugli/butteraugli.cc"
	"../Siv3D/Source/ThirdParty/guetzli/butteraugli_comparator.cc"
	"../Siv3D/Source/ThirdParty/guetzli/dct_double.cc"
	"../Siv3D/Source/ThirdParty/guetzli/debug_print.cc"
	"../Siv3D/Source/ThirdParty/guetzli/entropy_encode.cc"
	"../Siv3D/Source/ThirdParty/guetzli/fdct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/gamma_correct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/idct.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_decoder.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_encoder.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_reader.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_data_writer.cc"
	"../Siv3D/Source/ThirdParty/guetzli/jpeg_huffman_decode.cc"
	"../Siv3D/Source/ThirdParty/guetzli/output_image.cc"
	"../Siv3D/Source/ThirdParty/guetzli/preprocess_downsample.cc"
	"../Siv3D/Source/ThirdParty/guetzli/processor.cc"
	"../Siv3D/Source/ThirdParty/guetzli/quality.cc"
	"../Siv3D/Source/ThirdParty/guetzli/quantize.cc"
	"../Siv3D/Source/ThirdParty/guetzli/score.cc"
	"../Siv3D/Source/ThirdParty/guetzli/score.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/common/shapes.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/advancing_front.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/cdt.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/sweep.cc"
	"../Siv3D/Source/ThirdParty/poly2tri/sweep/sweep_context.cc"

	# GLFW
	# common files
	"../Siv3D/Source/ThirdParty/GLFW/deps/glad.c"

	"../Siv3D/Source/ThirdParty/GLFW/src/context.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/init.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/input.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/monitor.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/vulkan.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/window.c"

	"../Siv3D/Source/ThirdParty/GLFW/src/linux_joystick.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/posix_time.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/posix_tls.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/xkb_unicode.c"
	"../Siv3D/Source/ThirdParty/GLFW/src/egl_context.c"
)

if (_SIV3D_LINUX_WINDOW_API_X11)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/x11_window.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/glx_context.c"
	)
elseif (_SIV3D_LINUX_WINDOW_API_WAYLAND)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/wl_window.c"
	)
elseif (_SIV3D_LINUX_WINDOW_API_MIR)
	set (SOURCE_FILES
		${SOURCE_FILES}
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_init.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_monitor.c"
		"../Siv3D/Source/ThirdParty/GLFW/src/mir_window.c"
	)
endif()

add_library(Siv3D STATIC ${SOURCE_FILES})

target_link_libraries(Siv3D
)


{'fraction_non_alphanumeric': 0.179315768777035, 'fraction_numerical': 0.035088780664871894, 'mean_word_length': 4.428571428571429, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4185225', 'n_tokens_mistral': 16246, 'n_tokens_neox': 15675, 'n_words': 891}