81 lines
2.8 KiB
CMake
81 lines
2.8 KiB
CMake
|
# this is just a basic CMakeLists.txt, for more information see the cmake manpage...
|
||
|
|
||
|
cmake_minimum_required(VERSION 2.4)
|
||
|
|
||
|
SET(OSTARGET "${OSTARGET}" CACHE STRING "woof")
|
||
|
|
||
|
IF(EXISTS "/bin/uname")
|
||
|
EXEC_PROGRAM("/bin/uname" ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR)
|
||
|
ELSEIF("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
|
||
|
SET(CMAKE_SYSTEM_PROCESSOR "x86_64" CACHE STRING "woof" FORCE)
|
||
|
ELSE()
|
||
|
SET(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "woof" FORCE)
|
||
|
ENDIF(EXISTS "/bin/uname")
|
||
|
|
||
|
IF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "mips64")
|
||
|
message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR} building ${OSTARGET}")
|
||
|
ELSE()
|
||
|
message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR}")
|
||
|
ENDIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "mips64")
|
||
|
|
||
|
# Setup the install prefix, if it's not already defined
|
||
|
IF(NOT CMAKE_INSTALL_PREFIX)
|
||
|
SET(CMAKE_INSTALL_PREFIX "/usr/local")
|
||
|
ENDIF(NOT CMAKE_INSTALL_PREFIX)
|
||
|
|
||
|
# Setup the build prefix, if it's not already defined
|
||
|
IF(NOT CMAKE_BUILD_TYPE)
|
||
|
SET(CMAKE_BUILD_TYPE "Release")
|
||
|
ENDIF(NOT CMAKE_BUILD_TYPE)
|
||
|
|
||
|
#add definitions, compiler switches, etc.
|
||
|
IF(APPLE)
|
||
|
SET(CMAKE_OSX_ARCHITECTURES "i386;x86_64")
|
||
|
ADD_DEFINITIONS(-Wall -Wextra -Werror -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6 -fexceptions -fPIC)
|
||
|
ELSEIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "mips64")
|
||
|
IF("${OSTARGET}" STREQUAL "mips64el")
|
||
|
ADD_DEFINITIONS(-Wall -Wextra -Werror)
|
||
|
ELSE()
|
||
|
ADD_DEFINITIONS(-Wall -Wextra -Werror -march=from-abi -mabi=32)
|
||
|
ENDIF()
|
||
|
ELSE()
|
||
|
ADD_DEFINITIONS(-Wall -Wextra -Werror -Wno-implicit-fallthrough)
|
||
|
ENDIF(APPLE)
|
||
|
|
||
|
#let's not be sharing our symbols...
|
||
|
IF(APPLE)
|
||
|
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-ldl -Wl,-framework,CoreServices -Wl,-framework,Foundation" CACHE STRING "woof" FORCE)
|
||
|
ELSEIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "mips64")
|
||
|
IF("${OSTARGET}" STREQUAL "mips64el")
|
||
|
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -Wl,--no-undefined -Wl,-ldl" CACHE STRING "woof" FORCE)
|
||
|
ELSE()
|
||
|
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -Wl,--no-undefined -Wl,-ldl -march=from-abi -mabi=32" CACHE STRING "woof" FORCE)
|
||
|
ENDIF()
|
||
|
ELSE()
|
||
|
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -Wl,--no-undefined -Wl,-ldl" CACHE STRING "woof" FORCE)
|
||
|
ENDIF(APPLE)
|
||
|
|
||
|
#project name
|
||
|
PROJECT(twaindsm)
|
||
|
|
||
|
#project version
|
||
|
SET(${PROJECT_NAME}_MAJOR_VERSION 2)
|
||
|
SET(${PROJECT_NAME}_MINOR_VERSION 5)
|
||
|
SET(${PROJECT_NAME}_PATCH_LEVEL 0)
|
||
|
|
||
|
#build a shared library
|
||
|
ADD_LIBRARY(twaindsm SHARED dsm.cpp apps.cpp log.cpp)
|
||
|
target_link_libraries(twaindsm dl)
|
||
|
|
||
|
#
|
||
|
SET_TARGET_PROPERTIES(twaindsm PROPERTIES
|
||
|
VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}
|
||
|
SOVERSION ${${PROJECT_NAME}_MAJOR_VERSION})
|
||
|
|
||
|
#add an install target here
|
||
|
INSTALL(FILES twain.h DESTINATION include)
|
||
|
INSTALL(TARGETS twaindsm
|
||
|
LIBRARY DESTINATION lib
|
||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||
|
|