diff --git a/ext/libpng17/CMakeLists.txt b/ext/libpng17/CMakeLists.txt index d2829cd3fea1..6c155a686a32 100644 --- a/ext/libpng17/CMakeLists.txt +++ b/ext/libpng17/CMakeLists.txt @@ -1,6 +1,7 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.8) +project(libpng17) -add_library(png17 +add_library(png17 STATIC pngconf.h pngdebug.h png.c @@ -23,4 +24,20 @@ add_library(png17 pngwio.c pngwrite.c pngwtran.c - pngwutil.c) + pngwutil.c +) + +# Add arm files for ARM processors +if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm(64)?|aarch64") + set (ARM_FILES arm/arm_init.c + ) + + # Check if it's 32 bit + if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4) + list(APPEND ARM_FILES arm/filter_neon.S) + else() + list(APPEND ARM_FILES arm/filter_neon_intrinsics.c) + endif() + + target_sources(png17 PRIVATE ${ARM_FILES}) +endif() diff --git a/ext/native/tools/CMakeLists.txt b/ext/native/tools/CMakeLists.txt index 0547a25af72a..168067fd0a1b 100644 --- a/ext/native/tools/CMakeLists.txt +++ b/ext/native/tools/CMakeLists.txt @@ -1,44 +1,42 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.8) +project(Tools) -project (Tools) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_definitions(-O2) -add_definitions(-Wall) -add_definitions(-DSDL) -add_definitions(-Wno-multichar) -add_definitions(-fno-strict-aliasing) -#add_definitions(-fopenmp) +add_compile_definitions(SDL MAX_LOGLEVEL=-1) +add_compile_options(-O2 -Wall -Wno-multichar -fno-strict-aliasing) +# Obsolete code? if(IOS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++ -DMAX_LOGLEVEL=-1") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++") elseif(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -mmacosx-version-min=10.7 -DMAX_LOGLEVEL=-1") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -mmacosx-version-min=10.7") endif() -if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7.0) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -DMAX_LOGLEVEL=-1") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DMAX_LOGLEVEL=-1") -endif() - -# add_definitions(-fstrict-aliasing) +# Find dependencies +find_package(Freetype REQUIRED) +find_package(ZLIB REQUIRED) +find_library(UTIL util REQUIRED) +find_library(ZSTD zstd REQUIRED) -include_directories(..) -include_directories(../..) -include_directories(../../..) +include_directories(${FREETYPE_INCLUDE_DIRS} + ../ + ../../ + ../../../ +) -link_directories(/opt/local/lib) +add_subdirectory(../../libpng17 png17) -# Horrible horrible hack -include_directories(/usr/include/freetype2) -include_directories(/usr/local/include/freetype2) -include_directories(/opt/local/include/freetype2) -include_directories(/opt/local/include) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/build) -add_subdirectory(../../libpng17 png17) +set(COMMON_FILES + ../../../Common/Data/Format/PNGLoad.cpp + ../../../Common/Data/Format/ZIMSave.cpp +) -add_executable(build/atlastool atlastool.cpp ../../../Common/Data/Format/PNGLoad.cpp ../../../Common/Data/Encoding/Utf8.cpp ../../../Common/Data/Format/ZIMSave.cpp) -target_link_libraries(build/atlastool freetype util png17 z zstd) +# Both executables are linked to the same libraries +link_libraries(${FREETYPE_LIBRARIES} ${UTIL} png17 ${ZLIB_LIBRARIES} ${ZSTD}) -add_executable(build/zimtool zimtool.cpp ../../../Common/Data/Format/PNGLoad.cpp ../../../Common/Data/Format/ZIMSave.cpp) -target_link_libraries(build/zimtool freetype util png17 z zstd) +add_executable(atlastool atlastool.cpp ../../../Common/Data/Encoding/Utf8.cpp ${COMMON_FILES}) +add_executable(zimtool zimtool.cpp ${COMMON_FILES})