Commit a47fa194 authored by Andrea Zoli's avatar Andrea Zoli
Browse files

Add cmake build system.

parent 772589f9
Loading
Loading
Loading
Loading

CMakeLists.txt

0 → 100644
+40 −0
Original line number Diff line number Diff line
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

macro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage )
string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" _insource )
if( _insource )
 message( SEND_ERROR "${_errorMessage}" )
 message( FATAL_ERROR
 "In-source builds are not allowed.
 
 This process created the file `CMakeCache.txt' and the directory `CMakeFiles and overwrite the Makefile.
 Please fix them with:
 
     rm -r CMakeCache.txt CMakeFiles
     git checkout Makefile
 
 CMake would overwrite the makefiles distributed with Compiler-RT.
 Please create a directory outside the source directory and run cmake
 from there, passing the path to this source directory as the last argument.
 Example for the lazy people:
 
     mkdir ../PacketLib_build
     cd ../PacketLib_build
     cmake ../PacketLib
 " )
endif( _insource )
endmacro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD )

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules)

MACRO_ENSURE_OUT_OF_SOURCE_BUILD( "In-source build error." )

project(packet)
set(packet_MAJOR_VERSION 4)
set(packet_MINOR_VERSION 3)
set(packet_PATCH_VERSION 0)
set(packet_VERSION
${packet_MAJOR_VERSION}.${packet_MINOR_VERSION}.${packet_PATCH_VERSION})
set(PROJECT_VERSION ${packet_VERSION})

add_subdirectory(src)
+24 −0
Original line number Diff line number Diff line
macro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage )
string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" _insource )
if( _insource )
 message( SEND_ERROR "${_errorMessage}" )
 message( FATAL_ERROR
 "In-source builds are not allowed.
 
 This process created the file `CMakeCache.txt' and the directory `CMakeFiles and overwrite the Makefile.
 Please fix them with:
 
     rm -r CMakeCache.txt CMakeFiles
     git checkout Makefile
 
 CMake would overwrite the makefiles distributed with Compiler-RT.
 Please create a directory outside the source directory and run cmake
 from there, passing the path to this source directory as the last argument.
 Example for the lazy people:
 
     mkdir ../PacketLib_build
     cd ../PacketLib_build
     cmake ../PacketLib
 " )
endif( _insource )
endmacro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD )

src/CMakeLists.txt

0 → 100644
+25 −0
Original line number Diff line number Diff line
set(SOURCES ByteStream.cpp File.cpp InputPacketStream.cpp InputTextFile.cpp OutputPacketStream.cpp
			PacketBufferV.cpp PacketHeader.cpp SDFBlock.cpp SocketServer.cpp ConfigurationFile.cpp
			FileStream.cpp InputPacketStreamFile.cpp MSGQ.cpp OutputSerial.cpp PacketDataField.cpp
			PacketIdentifier.cpp SHM.cpp SourceDataField.cpp DataFieldHeader.cpp FileStreamPointer.cpp
			InputSerial.cpp MemoryBuffer.cpp OutputSocketClient.cpp PacketException.cpp
			PacketNotRecognized.cpp Serial.cpp Utility.cpp Device.cpp Input.cpp InputSocketServer.cpp
			Output.cpp Packet.cpp PacketExceptionFileFormat.cpp PacketStream.cpp Socket.cpp pugixml.cpp
			Field.cpp InputFile.cpp InputText.cpp OutputFile.cpp PacketBufferQ.cpp PacketExceptionIO.cpp
			PartOfPacket.cpp SocketClient.cpp
			lz4.c lz4hc.c)

# libpacket.a and libpacket.so
include_directories(${CMAKE_SOURCE_DIR}/include)
add_library(${CMAKE_PROJECT_NAME} SHARED ${SOURCES})
add_library(${CMAKE_PROJECT_NAME}static STATIC ${SOURCES})
set_target_properties(${CMAKE_PROJECT_NAME}static PROPERTIES OUTPUT_NAME ${CMAKE_PROJECT_NAME})
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
target_link_libraries(${CMAKE_PROJECT_NAME} ${LIBS})

# make install
file(GLOB HEADERS "${PROJECT_SOURCE_DIR}/include/*.h")
install(FILES ${HEADERS} DESTINATION include/packet)
install(TARGETS ${CMAKE_PROJECT_NAME} DESTINATION lib)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../doc)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../doc DESTINATION .)