From 76a9acb72693e670b141b2eb57f14cad1d1a1cef Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Thu, 9 Sep 2010 18:20:09 -0300 Subject: Created cmake option 'ENABLE_VERSION_SUFFIX' to use version on generated files to allow multiples version installed simultaneous. Reviewer: Hugo Parente Lima Luciano Wolf --- CMakeLists.txt | 8 ++++++++ data/CMakeLists.txt | 14 ++++++++++++++ data/ShibokenConfig.cmake.in | 11 +++++++++++ data/ShibokenConfigVersion.cmake.in | 9 +++++++++ data/shiboken.pc.in | 12 ++++++++++++ libshiboken/CMakeLists.txt | 18 ++---------------- libshiboken/ShibokenConfig.cmake.in | 11 ----------- libshiboken/ShibokenConfigVersion.cmake.in | 9 --------- libshiboken/shiboken.pc.in | 12 ------------ tests/otherbinding/CMakeLists.txt | 4 +--- tests/samplebinding/CMakeLists.txt | 4 +--- 11 files changed, 58 insertions(+), 54 deletions(-) create mode 100644 data/CMakeLists.txt create mode 100644 data/ShibokenConfig.cmake.in create mode 100644 data/ShibokenConfigVersion.cmake.in create mode 100644 data/shiboken.pc.in delete mode 100644 libshiboken/ShibokenConfig.cmake.in delete mode 100644 libshiboken/ShibokenConfigVersion.cmake.in delete mode 100644 libshiboken/shiboken.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 6338fee3f..2f72ef816 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ add_definitions(${QT_DEFINITIONS}) option(AVOID_PROTECTED_HACK "Avoid protected hack on generated bindings." FALSE) option(BUILD_TESTS "Build tests." TRUE) +option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated files. This is used to allow multiples versions installed simultaneous." FALSE) if(MSVC) set(CMAKE_CXX_FLAGS "/Zc:wchar_t- /GR /EHsc /DWIN32 /D_WINDOWS /D_SCL_SECURE_NO_WARNINGS") @@ -54,6 +55,11 @@ set(shiboken_MAJOR_VERSION "0") set(shiboken_MINOR_VERSION "5") set(shiboken_MICRO_VERSION "0") set(shiboken_VERSION "${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}.${shiboken_MICRO_VERSION}") +if(ENABLE_VERSION_SUFFIX) + set(shiboken_SUFFIX "-${shiboken_MAJOR_VERSION}.${shiboken_MINOR_VERSION}") +else() + set(shiboken_SUFFIX "") +endif() set(shiboken_SRC cppgenerator.cpp @@ -78,6 +84,7 @@ target_link_libraries(shiboken_generator ${QT_QTCORE_LIBRARY}) add_executable(shiboken main.cpp) +set_target_properties(shiboken PROPERTIES OUTPUT_NAME shiboken${shiboken_SUFFIX}) target_link_libraries(shiboken ${QT_QTCORE_LIBRARY}) # uninstall target @@ -118,6 +125,7 @@ add_subdirectory(libshiboken) if (BUILD_TESTS) add_subdirectory(tests) endif() +add_subdirectory(data) set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${shiboken_VERSION}) add_custom_target(dist diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100644 index 000000000..85c9d6a99 --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1,14 @@ +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ShibokenConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfig.cmake" @ONLY) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ShibokenConfigVersion.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfigVersion.cmake" @ONLY) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/shiboken.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/shiboken${shiboken_SUFFIX}.pc" @ONLY) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfig.cmake" + DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken-${shiboken_VERSION}") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfigVersion.cmake" + DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken-${shiboken_VERSION}") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/shiboken${shiboken_SUFFIX}.pc" + DESTINATION "${LIB_INSTALL_DIR}/pkgconfig") + diff --git a/data/ShibokenConfig.cmake.in b/data/ShibokenConfig.cmake.in new file mode 100644 index 000000000..148c35b9b --- /dev/null +++ b/data/ShibokenConfig.cmake.in @@ -0,0 +1,11 @@ +# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN +# SHIBOKEN_LIBRARIES - Files to link against to use SHIBOKEN + +SET(SHIBOKEN_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include/shiboken@shiboken_SUFFIX@") +if(MSVC) + SET(SHIBOKEN_LIBRARY "@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken@shiboken_SUFFIX@.lib") +elseif(WIN32) + SET(SHIBOKEN_LIBRARY "@CMAKE_INSTALL_PREFIX@/bin/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken@shiboken_SUFFIX@@CMAKE_SHARED_LIBRARY_SUFFIX@") +else() + SET(SHIBOKEN_LIBRARY "@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken@shiboken_SUFFIX@@CMAKE_SHARED_LIBRARY_SUFFIX@") +endif() diff --git a/data/ShibokenConfigVersion.cmake.in b/data/ShibokenConfigVersion.cmake.in new file mode 100644 index 000000000..89d84fc1f --- /dev/null +++ b/data/ShibokenConfigVersion.cmake.in @@ -0,0 +1,9 @@ +set(PACKAGE_VERSION @shiboken_VERSION@) +if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @shiboken_MAJOR_VERSION@) + if("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @shiboken_MINOR_VERSION@) + set(PACKAGE_VERSION_COMPATIBLE 1) + if("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @shiboken_MICRO_VERSION@) + set(PACKAGE_VERSION_EXACT 1) + endif() + endif() +endif() diff --git a/data/shiboken.pc.in b/data/shiboken.pc.in new file mode 100644 index 000000000..ed1cc6c8c --- /dev/null +++ b/data/shiboken.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@LIB_INSTALL_DIR@ +includedir=@CMAKE_INSTALL_PREFIX@/include/shiboken +generator_location=@CMAKE_INSTALL_PREFIX@/bin/shiboken + +Name: shiboken +Description: Support library for Python bindings created with Shiboken generator. +Version: @shiboken_VERSION@ +Libs: -L${libdir} -lpython -lshiboken${shiboken_SUFFIX} +Cflags: -I${includedir}/shiboken${shiboken_SUFFIX} + diff --git a/libshiboken/CMakeLists.txt b/libshiboken/CMakeLists.txt index a632b68a3..bfd160b10 100644 --- a/libshiboken/CMakeLists.txt +++ b/libshiboken/CMakeLists.txt @@ -14,13 +14,6 @@ set(libshiboken_MICRO_VERSION ${shiboken_MICRO_VERSION}) set(libshiboken_VERSION "${libshiboken_MAJOR_VERSION}.${libshiboken_MINOR_VERSION}.${libshiboken_MICRO_VERSION}") set(libshiboken_SOVERSION "${libshiboken_MAJOR_VERSION}.${libshiboken_MINOR_VERSION}") -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ShibokenConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfig.cmake" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ShibokenConfigVersion.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfigVersion.cmake" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/shiboken.pc.in" - "${CMAKE_CURRENT_BINARY_DIR}/shiboken.pc" @ONLY) - set(libshiboken_SRC basewrapper.cpp gilstate.cpp @@ -36,7 +29,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SPARSEHASH_INCLUDE_PATH}) add_library(libshiboken SHARED ${libshiboken_SRC}) target_link_libraries(libshiboken ${SBK_PYTHON_LIBRARIES}) -set_target_properties(libshiboken PROPERTIES OUTPUT_NAME "shiboken" +set_target_properties(libshiboken PROPERTIES OUTPUT_NAME "shiboken${shiboken_SUFFIX}" VERSION ${libshiboken_VERSION} SOVERSION ${libshiboken_SOVERSION} DEFINE_SYMBOL LIBSHIBOKEN_EXPORTS) @@ -55,15 +48,8 @@ install(FILES shibokenmacros.h threadstatesaver.h typeresolver.h - DESTINATION include/shiboken) + DESTINATION include/shiboken${shiboken_SUFFIX}) install(TARGETS libshiboken EXPORT shiboken LIBRARY DESTINATION "${LIB_INSTALL_DIR}" ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" RUNTIME DESTINATION bin) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfig.cmake" - DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken-${libshiboken_VERSION}") -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ShibokenConfigVersion.cmake" - DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken-${libshiboken_VERSION}") -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/shiboken.pc" - DESTINATION "${LIB_INSTALL_DIR}/pkgconfig") - diff --git a/libshiboken/ShibokenConfig.cmake.in b/libshiboken/ShibokenConfig.cmake.in deleted file mode 100644 index da513be0a..000000000 --- a/libshiboken/ShibokenConfig.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN -# SHIBOKEN_LIBRARIES - Files to link against to use SHIBOKEN - -SET(SHIBOKEN_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include/shiboken") -if(MSVC) - SET(SHIBOKEN_LIBRARY "@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken.lib") -elseif(WIN32) - SET(SHIBOKEN_LIBRARY "@CMAKE_INSTALL_PREFIX@/bin/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken@CMAKE_SHARED_LIBRARY_SUFFIX@") -else() - SET(SHIBOKEN_LIBRARY "@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@shiboken@CMAKE_SHARED_LIBRARY_SUFFIX@") -endif() diff --git a/libshiboken/ShibokenConfigVersion.cmake.in b/libshiboken/ShibokenConfigVersion.cmake.in deleted file mode 100644 index c29b249d4..000000000 --- a/libshiboken/ShibokenConfigVersion.cmake.in +++ /dev/null @@ -1,9 +0,0 @@ -set(PACKAGE_VERSION @libshiboken_VERSION@) -if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @libshiboken_MAJOR_VERSION@) - if("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @libshiboken_MINOR_VERSION@) - set(PACKAGE_VERSION_COMPATIBLE 1) - if("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @libshiboken_MICRO_VERSION@) - set(PACKAGE_VERSION_EXACT 1) - endif() - endif() -endif() diff --git a/libshiboken/shiboken.pc.in b/libshiboken/shiboken.pc.in deleted file mode 100644 index c188831d2..000000000 --- a/libshiboken/shiboken.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=@CMAKE_INSTALL_PREFIX@ -libdir=@LIB_INSTALL_DIR@ -includedir=@CMAKE_INSTALL_PREFIX@/include/shiboken -generator_location=@CMAKE_INSTALL_PREFIX@/bin/shiboken - -Name: shiboken -Description: Support library for Python bindings created with Shiboken generator. -Version: @libshiboken_VERSION@ -Libs: -L${libdir} -lpython -Cflags: -I${includedir} - diff --git a/tests/otherbinding/CMakeLists.txt b/tests/otherbinding/CMakeLists.txt index 0864d9617..25294bf74 100644 --- a/tests/otherbinding/CMakeLists.txt +++ b/tests/otherbinding/CMakeLists.txt @@ -13,10 +13,8 @@ ${CMAKE_CURRENT_BINARY_DIR}/other/otherobjecttype_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/other/other_module_wrapper.cpp ) -find_program(GENERATOR generatorrunner REQUIRED) - add_custom_command(OUTPUT ${other_SRC} -COMMAND ${GENERATOR} --generatorSet=${shiboken_BINARY_DIR}/shiboken_generator${CMAKE_RELEASE_POSTFIX}${CMAKE_DEBUG_POSTFIX} --enable-parent-ctor-heuristic +COMMAND ${GENERATORRUNNER_BINARY} --generatorSet=${shiboken_BINARY_DIR}/shiboken_generator${CMAKE_RELEASE_POSTFIX}${CMAKE_DEBUG_POSTFIX} --enable-parent-ctor-heuristic ${CMAKE_CURRENT_SOURCE_DIR}/global.h --include-paths=${libother_SOURCE_DIR}${PATH_SEP}${libsample_SOURCE_DIR}${PATH_SEP}${libsample_SOURCE_DIR}/.. --typesystem-paths=${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${sample_SOURCE_DIR} diff --git a/tests/samplebinding/CMakeLists.txt b/tests/samplebinding/CMakeLists.txt index c4b19c703..14ec66939 100644 --- a/tests/samplebinding/CMakeLists.txt +++ b/tests/samplebinding/CMakeLists.txt @@ -75,10 +75,8 @@ ${CMAKE_CURRENT_BINARY_DIR}/sample/voidholder_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/sample/valueandvirtual_wrapper.cpp ) -find_program(GENERATOR generatorrunner REQUIRED) - add_custom_command(OUTPUT ${sample_SRC} -COMMAND ${GENERATOR} --generatorSet=${shiboken_BINARY_DIR}/shiboken_generator${CMAKE_RELEASE_POSTFIX}${CMAKE_DEBUG_POSTFIX} --enable-parent-ctor-heuristic +COMMAND ${GENERATORRUNNER_BINARY} --generatorSet=${shiboken_BINARY_DIR}/shiboken_generator${CMAKE_RELEASE_POSTFIX}${CMAKE_DEBUG_POSTFIX} --enable-parent-ctor-heuristic ${CMAKE_CURRENT_SOURCE_DIR}/global.h --include-paths=${libsample_SOURCE_DIR} --typesystem-paths=${CMAKE_CURRENT_SOURCE_DIR} -- cgit v1.2.3