60 lines
1.8 KiB
CMake
60 lines
1.8 KiB
CMake
|
|
# Written in 2009 by Lloyd Hilaiel
|
||
|
|
#
|
||
|
|
# License
|
||
|
|
#
|
||
|
|
# All the cruft you find here is public domain. You don't have to credit
|
||
|
|
# anyone to use this code, but my personal request is that you mention
|
||
|
|
# Igor Pavlov for his hard, high quality work.
|
||
|
|
#
|
||
|
|
|
||
|
|
IF (WIN32)
|
||
|
|
ADD_DEFINITIONS(-DWIN32)
|
||
|
|
ENDIF (WIN32)
|
||
|
|
|
||
|
|
FILE(GLOB SRCS pavlov/*.c *.c)
|
||
|
|
FILE(GLOB HDRS *.h pavlov/*.h easylzma/*.h)
|
||
|
|
FILE(GLOB PUB_HDRS easylzma/*.h)
|
||
|
|
|
||
|
|
# set up some paths for outputing the usable binaries
|
||
|
|
SET (libDir
|
||
|
|
${CMAKE_CURRENT_BINARY_DIR}/../${EASYLZMA_DIST_NAME}/lib)
|
||
|
|
SET (incDir
|
||
|
|
${CMAKE_CURRENT_BINARY_DIR}/../${EASYLZMA_DIST_NAME}/include/easylzma)
|
||
|
|
|
||
|
|
# an include directory to allow easylzma implementation to find public
|
||
|
|
# headers
|
||
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
|
||
|
|
|
||
|
|
# get the built libs into the correct place
|
||
|
|
SET(LIBRARY_OUTPUT_PATH ${libDir})
|
||
|
|
|
||
|
|
ADD_LIBRARY(easylzma_static STATIC ${SRCS} ${HDRS})
|
||
|
|
#ADD_LIBRARY(easylzma SHARED ${SRCS} ${HDRS})
|
||
|
|
|
||
|
|
# setup shared library version numbering
|
||
|
|
#SET_TARGET_PROPERTIES(
|
||
|
|
# easylzma PROPERTIES
|
||
|
|
# SOVERSION ${EASYLZMA_MAJOR}
|
||
|
|
# VERSION ${EASYLZMA_MAJOR}.${EASYLZMA_MINOR}.${EASYLZMA_MICRO})
|
||
|
|
|
||
|
|
# on win32 we'll need to setup exports correctly
|
||
|
|
SET(sharedLibCompileFlags "-DEASYLZMA_SHARED -DEASYLZMA_BUILD")
|
||
|
|
IF (APPLE)
|
||
|
|
SET(sharedLibCompileFlags "${sharedLibCompileFlags} -fno-common")
|
||
|
|
ENDIF (APPLE)
|
||
|
|
|
||
|
|
#SET_TARGET_PROPERTIES(easylzma PROPERTIES
|
||
|
|
# COMPILE_FLAGS ${sharedLibCompileFlags})
|
||
|
|
|
||
|
|
# create these output directories
|
||
|
|
FILE(MAKE_DIRECTORY ${libDir})
|
||
|
|
FILE(MAKE_DIRECTORY ${incDir})
|
||
|
|
|
||
|
|
### copy the two required headers into our output dir as a post build step
|
||
|
|
# copy public headers to output directory
|
||
|
|
FOREACH (header ${PUB_HDRS})
|
||
|
|
# preserve relative pathing
|
||
|
|
ADD_CUSTOM_COMMAND(TARGET easylzma_s POST_BUILD
|
||
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${incDir})
|
||
|
|
ENDFOREACH (header ${PUB_HDRS})
|