packages feed

fltkhs-0.4.0.3: CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

PROJECT(fltkc)

# CMake doesn't like backslashes in path
STRING("REGEX" "REPLACE" "\\\\" "/" "FLTK_HOME" "${FLTK_HOME}")

if(EXISTS "${FLTK_HOME}/build/lib/libfltk_z.a")
  SET(FLTK_Z "${FLTK_HOME}/build/lib/libfltk_z.a")
else()
  find_library(HAVE_Z z)
  SET(FLTK_Z "${HAVE_Z}")
endif()

if(EXISTS "${FLTK_HOME}/build/lib/libfltk_jpeg.a")
  SET(FLTK_JPEG "${FLTK_HOME}/build/lib/libfltk_jpeg.a")
else()
  find_library(HAVE_JPEG jpeg)
  SET(FLTK_JPEG "${HAVE_JPEG}")
endif()

if(EXISTS "${FLTK_HOME}/build/lib/libfltk_png.a")
  SET(FLTK_PNG "${FLTK_HOME}/build/lib/libfltk_png.a")
else()
  find_library(HAVE_PNG png)
  SET(FLTK_PNG "${HAVE_PNG}")
endif()

INCLUDE_DIRECTORIES(${FLTK_HOME})
LINK_DIRECTORIES("${FLTK_HOME}/build/lib")
SET(FLTKLINKFLAGS "-Wl,-Bstatic")
SET(FLTKLINKFLAGS "${FLTKLINKFLAGS} -lfltk.a -lfltk_gl -lfltk_images.a ${FLTK_PNG} ${FLTK_JPEG} ${FLTK_Z} -lfltk_forms")
SET(FLTKLINKFLAGS "${FLTKLINKFLAGS} -Wl,-Bdynamic")

# target_link_libraries doesn't accept libraries as absolute path and
# find_library usually returns path to import library instead static one
# so replace any string in form of 'c:/dev/lib/libfoo.dll.a' with '-lfoo'
STRING(REGEX REPLACE "[^ ]*/lib" "-l" FLTKLINKFLAGS ${FLTKLINKFLAGS})
STRING(REGEX REPLACE "\\.dll\\.a|\\.a" "" FLTKLINKFLAGS ${FLTKLINKFLAGS})

SET(FLTKLINKFLAGS "${FLTKLINKFLAGS} -lglu32 -lopengl32 -lole32 -luuid -lcomctl32 -lComdlg32 -static-libstdc++ -static-libgcc")

# Newer versions of MinGW come with libwinpthread which gets linked dynamicaly by default
find_library (HAVE_PTHREAD pthread)
IF(HAVE_PTHREAD)
	SET(FLTKLINKFLAGS "${FLTKLINKFLAGS} -Wl,-Bstatic,-lstdc++,-lpthread,-Bdynamic")
else()
	SET(FLTKLINKFLAGS "${FLTKLINKFLAGS} -Wl,-Bstatic,-lstdc++,-Bdynamic")
endif()


SET(FLTKCONFIGCOMMAND "-Wl,-Bstatic,-whole-archive,-lfltkc,-no-whole-archive,-Bdynamic -L${FLTK_HOME}/build/lib -L${CMAKE_CURRENT_SOURCE_DIR}/c-lib ${FLTKLINKFLAGS}")

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/fltkhs.buildinfo.in
               ${CMAKE_CURRENT_SOURCE_DIR}/fltkhs.buildinfo)
FIND_PACKAGE(OpenGL REQUIRED)
set_directory_properties(PROPERTIES
                         ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/cmake_install.cmake;
                                                      ${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt;
                                                      ${CMAKE_CURRENT_SOURCE_DIR}/CMakeFiles")
ADD_SUBDIRECTORY(c-src)