Add: introduce CMake for project management

CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.

Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.

This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.

Addtiionally, this heavily improves our detection of libraries, etc.
This commit is contained in:
Patric Stout
2019-04-07 11:57:55 +02:00
committed by glx22
parent 85315e2e31
commit 56d54cf60e
69 changed files with 3116 additions and 1144 deletions

View File

@@ -0,0 +1,55 @@
add_files(
32bpp_anim.cpp
32bpp_anim.hpp
32bpp_base.cpp
32bpp_base.hpp
32bpp_optimized.cpp
32bpp_optimized.hpp
32bpp_simple.cpp
32bpp_simple.hpp
8bpp_base.cpp
8bpp_base.hpp
8bpp_optimized.cpp
8bpp_optimized.hpp
8bpp_simple.cpp
8bpp_simple.hpp
CONDITION NOT OPTION_DEDICATED
)
add_files(
32bpp_anim_sse2.cpp
32bpp_anim_sse2.hpp
32bpp_anim_sse4.cpp
32bpp_anim_sse4.hpp
32bpp_sse2.cpp
32bpp_sse2.hpp
32bpp_sse4.cpp
32bpp_sse4.hpp
32bpp_sse_func.hpp
32bpp_sse_type.h
32bpp_ssse3.cpp
32bpp_ssse3.hpp
CONDITION NOT OPTION_DEDICATED AND SSE_FOUND
)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set_compile_flags(
32bpp_anim_sse2.cpp
32bpp_sse2.cpp
COMPILE_FLAGS -msse2)
set_compile_flags(
32bpp_ssse3.cpp
COMPILE_FLAGS -mssse3)
set_compile_flags(
32bpp_anim_sse4.cpp
32bpp_sse4.cpp
COMPILE_FLAGS -msse4.1)
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
add_files(
base.hpp
common.hpp
factory.hpp
null.cpp
null.hpp
)