From deaaefa5362dd10c27981bcb44d1261b8ae74123 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?=
 <4973094+kmilos@users.noreply.github.com>
Date: Mon, 28 Jun 2021 08:30:30 +0200
Subject: [PATCH] Improve cmake for mingw (#19)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Miloš Komarčević <miloskomarcevic@aim.com>
---
 CMakeLists.txt               |  6 ++++--
 cmake/libaec-config.cmake.in | 11 +++--------
 src/CMakeLists.txt           |  8 +++++---
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2bd1938..f899a92 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
 set(CMAKE_C_STANDARD 99)
 set(CMAKE_C_VISIBILITY_PRESET hidden)
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-enable_testing()
+include(CTest)
 
 include(TestBigEndian)
 test_big_endian(WORDS_BIGENDIAN)
@@ -39,7 +39,9 @@ configure_file(
   "${CMAKE_CURRENT_BINARY_DIR}/config.h")
 
 add_subdirectory(src)
-add_subdirectory(tests)
+if(BUILD_TESTING)
+  add_subdirectory(tests)
+endif()
 
 option(AEC_FUZZING "Enable build of fuzzing target" OFF)
 if(AEC_FUZZING)
diff --git a/cmake/libaec-config.cmake.in b/cmake/libaec-config.cmake.in
index 6f610f0..2f733be 100644
--- a/cmake/libaec-config.cmake.in
+++ b/cmake/libaec-config.cmake.in
@@ -27,7 +27,7 @@
 find_path(libaec_INCLUDE_DIR NAMES libaec.h DOC "AEC include directory")
 find_path(SZIP_INCLUDE_DIR NAMES szlib.h DOC "SZIP include directory")
 if (libaec_USE_STATIC_LIBS)
-  if (WIN32)
+  if (MSVC)
     find_library(libaec_LIBRARY NAMES aec_static.lib DOC "AEC library")
     find_library(SZIP_LIBRARY NAMES szip_static.lib DOC "SZIP compatible version of the AEC library")
   else ()
@@ -35,13 +35,8 @@ if (libaec_USE_STATIC_LIBS)
     find_library(SZIP_LIBRARY NAMES libsz.a DOC "SZIP compatible version of the AEC library")
   endif ()
 else ()
-  if (WIN32)
-    find_library(libaec_LIBRARY NAMES aec.lib DOC "AEC library")
-    find_library(SZIP_LIBRARY NAMES szip.lib DOC "SZIP compatible version of the AEC library")
-  else ()
-    find_library(libaec_LIBRARY NAMES libaec.so DOC "AEC library")
-    find_library(SZIP_LIBRARY NAMES libsz.so DOC "SZIP compatible version of the AEC library")
-  endif ()
+  find_library(libaec_LIBRARY NAMES aec DOC "AEC library")
+  find_library(SZIP_LIBRARY NAMES sz szip DOC "SZIP compatible version of the AEC library")
 endif ()
 
 # Check version here
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1e3e600..87d3833 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,7 +15,7 @@ add_library(aec_static STATIC "$<TARGET_OBJECTS:aec>")
 target_link_libraries(aec_static PUBLIC aec)
 set_target_properties(aec_static
   PROPERTIES
-  OUTPUT_NAME $<IF:$<BOOL:${WIN32}>,aec_static,aec>)
+  OUTPUT_NAME $<IF:$<BOOL:${MSVC}>,aec_static,aec>)
 
 add_library(aec_shared SHARED "$<TARGET_OBJECTS:aec>")
 target_link_libraries(aec_shared PUBLIC aec)
@@ -34,7 +34,7 @@ target_link_libraries(sz PUBLIC aec)
 add_library(sz_static STATIC "$<TARGET_OBJECTS:sz>" "$<TARGET_OBJECTS:aec>")
 set_target_properties(sz_static
   PROPERTIES
-  OUTPUT_NAME $<IF:$<BOOL:${WIN32}>,szip_static,sz>)
+  OUTPUT_NAME $<IF:$<BOOL:${MSVC}>,szip_static,sz>)
 target_link_libraries(sz_static PUBLIC sz)
 
 add_library(sz_shared SHARED "$<TARGET_OBJECTS:sz>" "$<TARGET_OBJECTS:aec>")
@@ -43,7 +43,7 @@ set_target_properties(sz_shared
   PROPERTIES
   VERSION 2.0.1
   SOVERSION 2
-  OUTPUT_NAME $<IF:$<BOOL:${WIN32}>,szip,sz>
+  OUTPUT_NAME $<IF:$<BOOL:${MSVC}>,szip,sz>
   PUBLIC_HEADER ../include/szlib.h)
 
 # Simple client for testing and benchmarking.
@@ -70,7 +70,9 @@ if(UNIX)
     ${CMAKE_CURRENT_SOURCE_DIR}/../data/typical.rz
     COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bdec.sh
     DEPENDS aec_client utime)
+endif()
 
+if(UNIX OR MINGW)
   # Install manpage
   install(
     FILES aec.1
-- 
GitLab