blob: 9fcec470754307a432e3049fc3bc9795f0d300ba [file] [log] [blame] [edit]
--- FLIF-0.3/src/CMakeLists.txt.orig 2017-04-28 11:46:54.000000000 -0400
+++ FLIF-0.3/src/CMakeLists.txt 2018-02-26 05:37:44.705656000 -0500
@@ -66,7 +66,7 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb3")
- set(CMAKE_CXX_FLAGS_RELEASE "-O3")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ftree-vectorize")
endif()
if(USE_ASAN)
@@ -89,36 +89,78 @@ endif()
add_executable(flif_exe ${COMMON_SOURCES} ${WINDOWS_EXE_SOURCE} ${FLIF_SRC_DIR}/flif-enc.cpp ${FLIF_SRC_DIR}/flif.cpp)
target_link_libraries(flif_exe ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
set_target_properties(flif_exe PROPERTIES OUTPUT_NAME flif)
+add_executable(dflif_exe ${COMMON_SOURCES} ${WINDOWS_EXE_SOURCE} ${FLIF_SRC_DIR}/flif-enc.cpp ${FLIF_SRC_DIR}/flif.cpp)
+target_compile_definitions(dflif_exe PRIVATE -DDECODER_ONLY)
+target_link_libraries(dflif_exe ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
+set_target_properties(dflif_exe PROPERTIES OUTPUT_NAME dflif)
if(WIN32)
target_include_directories(flif_exe PRIVATE ${FLIF_SRC_DIR}/../build/MSVC/getopt)
target_compile_definitions(flif_exe PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} STATIC_GETOPT ) # prevents dllexporting symbols for getopt
+ target_include_directories(dflif_exe PRIVATE ${FLIF_SRC_DIR}/../build/MSVC/getopt)
+ target_compile_definitions(dflif_exe PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} STATIC_GETOPT ) # prevents dllexporting symbols for getopt
endif()
# library
+if(BUILD_SHARED_LIBS)
+ add_library(flif_lib SHARED ${COMMON_SOURCES} ${FLIF_SRC_DIR}/flif-enc.cpp ${FLIF_SRC_DIR}/library/flif-interface.cpp)
+ add_library(flif_lib_dec SHARED ${COMMON_SOURCES} ${FLIF_SRC_DIR}/library/flif-interface_dec.cpp)
-add_library(flif_lib SHARED ${COMMON_SOURCES} ${FLIF_SRC_DIR}/flif-enc.cpp ${FLIF_SRC_DIR}/library/flif-interface.cpp)
-add_library(flif_lib_dec SHARED ${COMMON_SOURCES} ${FLIF_SRC_DIR}/library/flif-interface_dec.cpp)
+ target_link_libraries(flif_lib ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
+ target_link_libraries(flif_lib_dec ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
-target_link_libraries(flif_lib ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
-target_link_libraries(flif_lib_dec ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
+ set_target_properties(flif_lib PROPERTIES OUTPUT_NAME flif)
+ set_target_properties(flif_lib_dec PROPERTIES OUTPUT_NAME flif_dec)
-set_target_properties(flif_lib PROPERTIES OUTPUT_NAME flif)
-set_target_properties(flif_lib_dec PROPERTIES OUTPUT_NAME flif_dec)
+ target_compile_definitions(flif_lib PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL )
+ target_compile_definitions(flif_lib_dec PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL DECODER_ONLY )
-target_compile_definitions(flif_lib PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL )
-target_compile_definitions(flif_lib_dec PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL DECODER_ONLY )
+ target_include_directories(flif_lib PRIVATE ${FLIF_SRC_DIR}/../extern)
+ target_include_directories(flif_lib_dec PRIVATE ${FLIF_SRC_DIR}/../extern)
+
+ target_link_libraries(flif_exe flif_lib)
+ target_link_libraries(dflif_exe flif_lib_dec)
+endif(BUILD_SHARED_LIBS)
target_include_directories(flif_exe PRIVATE ${FLIF_SRC_DIR}/../extern)
-target_include_directories(flif_lib PRIVATE ${FLIF_SRC_DIR}/../extern)
-target_include_directories(flif_lib_dec PRIVATE ${FLIF_SRC_DIR}/../extern)
+target_include_directories(dflif_exe PRIVATE ${FLIF_SRC_DIR}/../extern)
+
+if(BUILD_STATIC_LIBS)
+ add_library(flif_lib_static STATIC ${COMMON_SOURCES} ${FLIF_SRC_DIR}/flif-enc.cpp ${FLIF_SRC_DIR}/library/flif-interface.cpp)
+ add_library(flif_lib_dec_static STATIC ${COMMON_SOURCES} ${FLIF_SRC_DIR}/library/flif-interface_dec.cpp)
+
+ target_link_libraries(flif_lib_static ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
+ target_link_libraries(flif_lib_dec_static ${PNG_LIBRARY} ${STATIC_LINKED_LIBS})
+
+ set_target_properties(flif_lib_static PROPERTIES OUTPUT_NAME flif)
+ set_target_properties(flif_lib_dec_static PROPERTIES OUTPUT_NAME flif_dec)
+
+ target_compile_definitions(flif_lib_static PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL )
+ target_compile_definitions(flif_lib_dec_static PRIVATE ${DEFINITIONS_FOR_ALL_TARGETS} FLIF_BUILD_DLL DECODER_ONLY )
+
+ target_include_directories(flif_lib_static PRIVATE ${FLIF_SRC_DIR}/../extern)
+ target_include_directories(flif_lib_dec_static PRIVATE ${FLIF_SRC_DIR}/../extern)
+
+ if (NOT(BUILD_SHARED_LIBS))
+ target_link_libraries(flif_exe flif_lib_static)
+ target_link_libraries(dflif_exe flif_lib_dec_static)
+ endif(NOT(BUILD_SHARED_LIBS))
+endif(BUILD_STATIC_LIBS)
# viewflif
if(${SDL2_FOUND})
- add_executable(viewflif ${FLIF_SRC_DIR}/viewflif.c)
+ if(WIN32)
+ add_executable(viewflif WIN32 ${FLIF_SRC_DIR}/viewflif.c)
+ else(WIN32)
+ add_executable(viewflif ${FLIF_SRC_DIR}/viewflif.c)
+ endif(WIN32)
set_source_files_properties(${FLIF_SRC_DIR}/viewflif.c PROPERTIES LANGUAGE CXX)
- target_link_libraries(viewflif flif_lib_dec ${SDL2_LIBRARY} ${SDL2MAIN_LIBRARY})
+ if ("${PKG_SDL2_STATIC_LIBRARIES}" STREQUAL "")
+ target_link_libraries(viewflif flif_lib_dec ${SDL2_LIBRARY} ${SDL2MAIN_LIBRARY})
+ else("${PKG_SDL2_STATIC_LIBRARIES}" STREQUAL "")
+ target_link_libraries(viewflif flif_lib_dec ${PKG_SDL2_STATIC_LIBRARIES})
+ endif("${PKG_SDL2_STATIC_LIBRARIES}" STREQUAL "")
target_include_directories(viewflif PRIVATE ${FLIF_SRC_DIR}/library ${SDL2_INCLUDE_DIR})
target_compile_definitions(viewflif PRIVATE FLIF_USE_DLL)
endif()