The branch, cmake-conversion has been updated
via b24bd083fe58d644ba3b4e8db76636dddd842b9d (commit)
from abe6a17bbc65524d8e917d18762c0fcf5f5e28b2 (commit)
- Log -----------------------------------------------------------------
commit b24bd083fe58d644ba3b4e8db76636dddd842b9d
Author: Kristóf Katus <kristof.katus@xxxxxxxxxxxxx>
Date: Thu Aug 25 17:34:38 2011 +0200
Installation of Libt2n.cmake
-----------------------------------------------------------------------
Summary of changes:
codegen/CMakeLists.txt | 1 +
codegen/Libt2n.cmake | 112 ++++++++++++++++++++++++++++++
examples-codegen/cmake/CMakeLists.txt | 2 +-
examples-codegen/cmake/Libt2n.cmake | 112 ------------------------------
examples-codegen/example1/CMakeLists.txt | 2 +-
examples-codegen/example2/CMakeLists.txt | 2 +-
libt2n.spec.in | 3 +-
7 files changed, 118 insertions(+), 116 deletions(-)
create mode 100644 codegen/Libt2n.cmake
delete mode 100644 examples-codegen/cmake/Libt2n.cmake
diff --git a/codegen/CMakeLists.txt b/codegen/CMakeLists.txt
index 1b62402..55d5243 100644
--- a/codegen/CMakeLists.txt
+++ b/codegen/CMakeLists.txt
@@ -13,3 +13,4 @@ target_link_libraries(libt2n-codegen ${XMLPP_LIBRARIES})
install(TARGETS libt2n-codegen DESTINATION bin)
install(FILES ${CPP_HEADERS} DESTINATION include)
install(FILES clientlib.pc.in DESTINATION share/libt2n)
+install(FILES Libt2n.cmake DESTINATION ${CMAKE_ROOT}/Modules)
diff --git a/codegen/Libt2n.cmake b/codegen/Libt2n.cmake
new file mode 100644
index 0000000..a31edee
--- /dev/null
+++ b/codegen/Libt2n.cmake
@@ -0,0 +1,112 @@
+# Detect libt2n. Version of this file: 1.2
+pkg_check_modules(LIBT2N REQUIRED libt2n)
+include_directories(${LIBT2N_INCLUDE_DIRS})
+link_directories(${LIBT2N_LIBRARY_DIRS})
+
+# Get locations from pkgconfig
+execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable libt2n_codegen
libt2n
+ OUTPUT_VARIABLE LIBT2N_CODEGEN
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable libt2n_datadir
libt2n
+ OUTPUT_VARIABLE LIBT2N_DATADIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+set(LIBT2N_CLIENT_PCTEMPLATE ${LIBT2N_DATADIR}/clientlib.pc.in)
+set(LIBT2N_GCCXML /usr/bin/libt2n-gccxml.sh)
+
+# Basic pkgconfig settings needed for client.pc generation
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
+set(includedir ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
+set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+
+# Setup libt2n. Arguments are the CMDGROUP names
+function(setup_libt2n)
+ string(LENGTH "${ARGV}" CMDGROUP_LEN)
+ if (${CMDGROUP_LEN} EQUAL 0)
+ message(FATAL_ERROR "libt2n CMDGROUP is empty")
+ endif(${CMDGROUP_LEN} EQUAL 0)
+
+ include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR})
+
+ # Compute include directories
+ # TODO: http://www.cmake.org/Bug/view.php?id=11889 contains a better
solution
+ get_property(gcc_include_dirs
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ PROPERTY INCLUDE_DIRECTORIES
+ )
+ set(gccxml_include_dirs "")
+ foreach(gcc_include_dir ${gcc_include_dirs})
+ set(gccxml_include_dirs "${gccxml_include_dirs} -I${gcc_include_dir}")
+ endforeach(gcc_include_dir ${gcc_include_dirs})
+
+ foreach(CMDGROUP ${ARGV})
+ message(STATUS "Processing libt2n command group ${CMDGROUP}")
+
+ # We are going to run each .cpp file through gccxml for the current
CMDGROUP
+ set(T2N_GCCXML_FILES "")
+ set(T2N_GCCXML_COMMANDS "")
+ foreach(T2NFILE ${${CMDGROUP}_GROUP})
+ get_filename_component(FILE_NAME ${T2NFILE} NAME)
+ get_filename_component(FILE_EXT ${T2NFILE} EXT)
+ if(NOT FILE_EXT STREQUAL ".cpp")
+ message(FATAL_ERROR " Error: ${FILE_NAME} is not a .cpp file
based on its filename extension!")
+ endif()
+ message(STATUS " Processing file ${FILE_NAME}")
+
+ # We build the commands in advance which execute gccxml on each
file in the CMDGROUP
+ set(T2N_GCCXML_COMMANDS ${T2N_GCCXML_COMMANDS}
+ COMMAND ${LIBT2N_GCCXML} ${gccxml_include_dirs} ${T2NFILE}
-fxml=${T2NFILE}.xml
+ )
+ # The filenames of the created intermediate gccxml files for the
current CMDGROUP
+ set(T2N_GCCXML_FILES ${T2N_GCCXML_FILES} ${T2NFILE}.xml)
+ endforeach(T2NFILE ${${CMDGROUP}_GROUP})
+
+ add_custom_command(
+ OUTPUT ${CMDGROUP}_common.cpp ${CMDGROUP}_common.hxx
${CMDGROUP}_client.cpp ${CMDGROUP}_client.hxx ${CMDGROUP}_server.cpp
${CMDGROUP}_server.hxx
+
+ # Create dummy _common.hxx file
+ COMMAND echo "\\#include \\\"codegen-stubhead.hxx\\\""
>${CMDGROUP}_common.hxx
+ COMMAND echo "\\#include \\\"${CMDGROUP}.hxx\\\""
>>${CMDGROUP}_common.hxx
+
+ # Invoke gccxml on each source file in the current CMDGROUP and
delete the dummy file
+ ${T2N_GCCXML_COMMANDS}
+ COMMAND rm -f ${CMDGROUP}_common.hxx
+
+ # Run the code generator on all the generated gccxml files and
remove those intermediate gccxml files
+ COMMAND ${LIBT2N_CODEGEN} ${CMDGROUP} ${T2N_GCCXML_FILES}
+ COMMAND rm -f ${T2N_GCCXML_FILES}
+
+ DEPENDS ${${CMDGROUP}_GROUP}
+ )
+
+ # Write out pkgconfig file
+ configure_file(${LIBT2N_CLIENT_PCTEMPLATE}
${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}.pc @ONLY@)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}.pc
+ DESTINATION lib/pkgconfig)
+
+ # Create shared client library
+ add_library(${CMDGROUP} SHARED ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx)
+ set_target_properties(${CMDGROUP} PROPERTIES VERSION ${VERSION}
SOVERSION 1)
+ install(TARGETS ${CMDGROUP} LIBRARY DESTINATION lib COMPONENT
sharedlibs)
+
+ # Create static client library
+ add_library(${CMDGROUP}-static STATIC ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx)
+ set_target_properties(${CMDGROUP}-static PROPERTIES OUTPUT_NAME
"${CMDGROUP}")
+ install(TARGETS ${CMDGROUP}-static ARCHIVE DESTINATION lib COMPONENT
staticlibs)
+
+ # Prevent clobbering each other during the build
+ set_target_properties(${CMDGROUP} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ set_target_properties(${CMDGROUP}-static PROPERTIES
CLEAN_DIRECT_OUTPUT 1)
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}_client.hxx
${CMDGROUP}.hxx
+ DESTINATION include
+ COMPONENT headers
+ )
+
+ # Wait till generated code is available
+ add_custom_target(${CMDGROUP}_codegen_done ALL DEPENDS
${CMDGROUP}_common.cpp ${CMDGROUP}_common.hxx ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx ${CMDGROUP}_server.cpp ${CMDGROUP}_server.hxx)
+ add_dependencies(${CMDGROUP} ${CMDGROUP}_codegen_done)
+ add_dependencies(${CMDGROUP}-static ${CMDGROUP}_codegen_done)
+
+ endforeach(CMDGROUP ${ARGV})
+endfunction(setup_libt2n)
diff --git a/examples-codegen/cmake/CMakeLists.txt
b/examples-codegen/cmake/CMakeLists.txt
index deb1c63..60bb8d1 100644
--- a/examples-codegen/cmake/CMakeLists.txt
+++ b/examples-codegen/cmake/CMakeLists.txt
@@ -5,7 +5,7 @@
set(t2n_mydaemon_GROUP
${CMAKE_SOURCE_DIR}/src/t2n_mydaemon.cpp
)
-include(Libt2n.cmake)
+include(${CMAKE_SOURCE_DIR}/codegen/Libt2n.cmake)
# Call setup_libt2n with the CMDGROUP name
setup_libt2n(t2n_mydaemon)
diff --git a/examples-codegen/cmake/Libt2n.cmake
b/examples-codegen/cmake/Libt2n.cmake
deleted file mode 100644
index a31edee..0000000
--- a/examples-codegen/cmake/Libt2n.cmake
+++ /dev/null
@@ -1,112 +0,0 @@
-# Detect libt2n. Version of this file: 1.2
-pkg_check_modules(LIBT2N REQUIRED libt2n)
-include_directories(${LIBT2N_INCLUDE_DIRS})
-link_directories(${LIBT2N_LIBRARY_DIRS})
-
-# Get locations from pkgconfig
-execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable libt2n_codegen
libt2n
- OUTPUT_VARIABLE LIBT2N_CODEGEN
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable libt2n_datadir
libt2n
- OUTPUT_VARIABLE LIBT2N_DATADIR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-set(LIBT2N_CLIENT_PCTEMPLATE ${LIBT2N_DATADIR}/clientlib.pc.in)
-set(LIBT2N_GCCXML /usr/bin/libt2n-gccxml.sh)
-
-# Basic pkgconfig settings needed for client.pc generation
-set(prefix ${CMAKE_INSTALL_PREFIX})
-set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
-set(includedir ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
-set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
-
-# Setup libt2n. Arguments are the CMDGROUP names
-function(setup_libt2n)
- string(LENGTH "${ARGV}" CMDGROUP_LEN)
- if (${CMDGROUP_LEN} EQUAL 0)
- message(FATAL_ERROR "libt2n CMDGROUP is empty")
- endif(${CMDGROUP_LEN} EQUAL 0)
-
- include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR})
-
- # Compute include directories
- # TODO: http://www.cmake.org/Bug/view.php?id=11889 contains a better
solution
- get_property(gcc_include_dirs
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- PROPERTY INCLUDE_DIRECTORIES
- )
- set(gccxml_include_dirs "")
- foreach(gcc_include_dir ${gcc_include_dirs})
- set(gccxml_include_dirs "${gccxml_include_dirs} -I${gcc_include_dir}")
- endforeach(gcc_include_dir ${gcc_include_dirs})
-
- foreach(CMDGROUP ${ARGV})
- message(STATUS "Processing libt2n command group ${CMDGROUP}")
-
- # We are going to run each .cpp file through gccxml for the current
CMDGROUP
- set(T2N_GCCXML_FILES "")
- set(T2N_GCCXML_COMMANDS "")
- foreach(T2NFILE ${${CMDGROUP}_GROUP})
- get_filename_component(FILE_NAME ${T2NFILE} NAME)
- get_filename_component(FILE_EXT ${T2NFILE} EXT)
- if(NOT FILE_EXT STREQUAL ".cpp")
- message(FATAL_ERROR " Error: ${FILE_NAME} is not a .cpp file
based on its filename extension!")
- endif()
- message(STATUS " Processing file ${FILE_NAME}")
-
- # We build the commands in advance which execute gccxml on each
file in the CMDGROUP
- set(T2N_GCCXML_COMMANDS ${T2N_GCCXML_COMMANDS}
- COMMAND ${LIBT2N_GCCXML} ${gccxml_include_dirs} ${T2NFILE}
-fxml=${T2NFILE}.xml
- )
- # The filenames of the created intermediate gccxml files for the
current CMDGROUP
- set(T2N_GCCXML_FILES ${T2N_GCCXML_FILES} ${T2NFILE}.xml)
- endforeach(T2NFILE ${${CMDGROUP}_GROUP})
-
- add_custom_command(
- OUTPUT ${CMDGROUP}_common.cpp ${CMDGROUP}_common.hxx
${CMDGROUP}_client.cpp ${CMDGROUP}_client.hxx ${CMDGROUP}_server.cpp
${CMDGROUP}_server.hxx
-
- # Create dummy _common.hxx file
- COMMAND echo "\\#include \\\"codegen-stubhead.hxx\\\""
>${CMDGROUP}_common.hxx
- COMMAND echo "\\#include \\\"${CMDGROUP}.hxx\\\""
>>${CMDGROUP}_common.hxx
-
- # Invoke gccxml on each source file in the current CMDGROUP and
delete the dummy file
- ${T2N_GCCXML_COMMANDS}
- COMMAND rm -f ${CMDGROUP}_common.hxx
-
- # Run the code generator on all the generated gccxml files and
remove those intermediate gccxml files
- COMMAND ${LIBT2N_CODEGEN} ${CMDGROUP} ${T2N_GCCXML_FILES}
- COMMAND rm -f ${T2N_GCCXML_FILES}
-
- DEPENDS ${${CMDGROUP}_GROUP}
- )
-
- # Write out pkgconfig file
- configure_file(${LIBT2N_CLIENT_PCTEMPLATE}
${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}.pc @ONLY@)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}.pc
- DESTINATION lib/pkgconfig)
-
- # Create shared client library
- add_library(${CMDGROUP} SHARED ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx)
- set_target_properties(${CMDGROUP} PROPERTIES VERSION ${VERSION}
SOVERSION 1)
- install(TARGETS ${CMDGROUP} LIBRARY DESTINATION lib COMPONENT
sharedlibs)
-
- # Create static client library
- add_library(${CMDGROUP}-static STATIC ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx)
- set_target_properties(${CMDGROUP}-static PROPERTIES OUTPUT_NAME
"${CMDGROUP}")
- install(TARGETS ${CMDGROUP}-static ARCHIVE DESTINATION lib COMPONENT
staticlibs)
-
- # Prevent clobbering each other during the build
- set_target_properties(${CMDGROUP} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
- set_target_properties(${CMDGROUP}-static PROPERTIES
CLEAN_DIRECT_OUTPUT 1)
-
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMDGROUP}_client.hxx
${CMDGROUP}.hxx
- DESTINATION include
- COMPONENT headers
- )
-
- # Wait till generated code is available
- add_custom_target(${CMDGROUP}_codegen_done ALL DEPENDS
${CMDGROUP}_common.cpp ${CMDGROUP}_common.hxx ${CMDGROUP}_client.cpp
${CMDGROUP}_client.hxx ${CMDGROUP}_server.cpp ${CMDGROUP}_server.hxx)
- add_dependencies(${CMDGROUP} ${CMDGROUP}_codegen_done)
- add_dependencies(${CMDGROUP}-static ${CMDGROUP}_codegen_done)
-
- endforeach(CMDGROUP ${ARGV})
-endfunction(setup_libt2n)
diff --git a/examples-codegen/example1/CMakeLists.txt
b/examples-codegen/example1/CMakeLists.txt
index 8231afa..eb0f0d9 100644
--- a/examples-codegen/example1/CMakeLists.txt
+++ b/examples-codegen/example1/CMakeLists.txt
@@ -25,7 +25,7 @@ include(CPack)
# for each command group list the files to parse for LIBT2N_EXPORT
set(t2nexample_GROUP ${CMAKE_CURRENT_SOURCE_DIR}/t2nexample.cpp)
# include CMake snippet doing all the magic
-include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Libt2n.cmake)
+include(${CMAKE_SOURCE_DIR}/codegen/Libt2n.cmake)
# command groups are listed here (seperated by spaces)
setup_libt2n(t2nexample)
diff --git a/examples-codegen/example2/CMakeLists.txt
b/examples-codegen/example2/CMakeLists.txt
index 9308cbe..31cc66a 100644
--- a/examples-codegen/example2/CMakeLists.txt
+++ b/examples-codegen/example2/CMakeLists.txt
@@ -35,7 +35,7 @@ set(other_GROUP
# ${CMAKE_CURRENT_SOURCE_DIR}/foo.hxx
#)
# include CMake snippet doing all the magic
-include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Libt2n.cmake)
+include(${CMAKE_SOURCE_DIR}/codegen/Libt2n.cmake)
# command groups are listed here (seperated by spaces)
setup_libt2n(default other)
diff --git a/libt2n.spec.in b/libt2n.spec.in
index c49047a..e2241b4 100644
--- a/libt2n.spec.in
+++ b/libt2n.spec.in
@@ -17,7 +17,7 @@ C++ IPC library
%package devel
Summary: talk2neighbor - C++ IPC library
Group: Intranator/Development
-Requires: libt2n = %{version} libgettext gccxml libxml++ boost-devel
+Requires: libt2n = %{version} gccxml libxml++ boost-devel
BuildPrereq: boost-devel
%description devel
@@ -71,3 +71,4 @@ rm -fr $RPM_BUILD_ROOT
%{prefix}/include/
# %{prefix}/share/aclocal
%{prefix}/share/libt2n
+%{prefix}/share/cmake/Modules/Libt2n.cmake
hooks/post-receive
--
C++ inter-process communication library
--
libt2n-git - see http://www.intra2net.com/en/developer/libt2n for details.
To unsubscribe send a mail to libt2n-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
|