Sam Spilsbury has proposed merging lp:~compiz-team/compiz/build-fixes-part-3-compizconfig-python into lp:compiz/0.9.8 with lp:~compiz-team/compiz/build-fixes-part-2 as a prerequisite.
Requested reviews: compiz packagers (compiz) For more details, see: https://code.launchpad.net/~compiz-team/compiz/build-fixes-part-3-compizconfig-python/+merge/106518 Testers should really test the last item in the branch pipeline lp:~compiz-team/compiz/build-fixes-part-10-animationaddon-plugin This branch gets compizconfig-python working using slightly saner build rules -- https://code.launchpad.net/~compiz-team/compiz/build-fixes-part-3-compizconfig-python/+merge/106518 Your team compiz packagers is requested to review the proposed merge of lp:~compiz-team/compiz/build-fixes-part-3-compizconfig-python into lp:compiz/0.9.8.
=== modified file 'compizconfig/CMakeLists.txt' --- compizconfig/CMakeLists.txt 2012-05-20 11:03:19 +0000 +++ compizconfig/CMakeLists.txt 2012-05-20 11:03:19 +0000 @@ -5,8 +5,8 @@ set (COMPIZCONFIG_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig) add_subdirectory (libcompizconfig) -#add_subdirectory (compizconfig-python) -#add_subdirectory (ccsm) +add_subdirectory (compizconfig-python) +add_subdirectory (ccsm) #add_subdirectory (gconf) #add_subdirectory (gsettings) === modified file 'compizconfig/ccsm/CMakeLists.txt' --- compizconfig/ccsm/CMakeLists.txt 2012-05-17 06:37:02 +0000 +++ compizconfig/ccsm/CMakeLists.txt 2012-05-20 11:03:19 +0000 @@ -14,11 +14,6 @@ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating Python Bytecode") -add_custom_target (install - COMMAND python setup.py install --prefix=${CMAKE_INSTALL_PREFIX} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Installing Python Files") - add_custom_target (pyclean_ccsm COMMAND python setup.py clean WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -29,6 +24,11 @@ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Uninstalling Python Files") +install (CODE + "message (\"Installing python files\") + execute_process (COMMAND python setup.py install --prefix=${CMAKE_INSTALL_PREFIX} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})") + #add_dependencies (clean pyclean) compiz_print_configure_header ("CompizConfig Settings Manager") === modified file 'compizconfig/compizconfig-python/CMakeLists.txt' --- compizconfig/compizconfig-python/CMakeLists.txt 2012-05-17 06:37:02 +0000 +++ compizconfig/compizconfig-python/CMakeLists.txt 2012-05-20 11:03:19 +0000 @@ -9,28 +9,57 @@ set (VERSION ${COMPIZ_RELEASE_VERSION}) -add_custom_target (python ALL - COMMAND python setup.py build - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/compizconfig_wrapper.c + COMMAND echo \"int main (void) { return 0\; }\" >> ${CMAKE_CURRENT_BINARY_DIR}/compizconfig_wrapper.c + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +# Get arch +execute_process (COMMAND uname -p OUTPUT_VARIABLE PROC_ARCH) + +# Get Python Version +execute_process (COMMAND python -c "import sys; print str (sys.version_info.major) + '.' + str (sys.version_info.minor)" + OUTPUT_VARIABLE PY_VERSION) + +string (REPLACE "\n" "" PROC_ARCH ${PROC_ARCH}) +string (REPLACE "\n" "" PY_VERSION ${PY_VERSION}) + +set (PY_BUILD_DIR lib.linux-${PROC_ARCH}-${PY_VERSION}) +set (PY_SCRIPTS_DIR scripts-${PY_VERSION}) + +set (PY_COMPIZCONFIG_SRC ${CMAKE_CURRENT_BINARY_DIR}/compizconfig.c) +set (PY_COMPIZCONFIG_VERSION ${CMAKE_CURRENT_BINARY_DIR}/VERSION) + +add_custom_command (OUTPUT ${PY_COMPIZCONFIG_VERSION} + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/VERSION ${CMAKE_CURRENT_BINARY_DIR}/VERSION) + +add_custom_command (OUTPUT ${PY_COMPIZCONFIG_SRC} + COMMAND cython -o ${PY_COMPIZCONFIG_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/src/compizconfig.pyx + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +set (PY_COMPIZCONFIG_LIB ${CMAKE_CURRENT_BINARY_DIR}/build/${PY_BUILD_DIR}/compizconfig.so) + +add_custom_command (OUTPUT ${PY_COMPIZCONFIG_LIB} + COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/setup.py build --build-base=${CMAKE_CURRENT_BINARY_DIR}/build + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${PY_COMPIZCONFIG_SRC} ${PY_COMPIZCONFIG_VERSION} COMMENT "Generating Python Bytecode") -add_custom_target (install - COMMAND python setup.py install --prefix=${CMAKE_INSTALL_PREFIX} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Installing Python Files") - -add_custom_target (pyclean_ccsm - COMMAND python setup.py clean - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Cleaning Python Files") +add_library (compizconfig_wrapper + ${CMAKE_CURRENT_BINARY_DIR}/compizconfig_wrapper.c + ${PY_COMPIZCONFIG_LIB}) add_custom_target (uninstall - COMMAND python setup.py uninstall - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/setup.py uninstall + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Uninstalling Python Files") -#add_dependencies (clean pyclean) -add_dependencies (python compizconfig) + +install (CODE + "message (\"Installing python files\") + execute_process (COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/setup.py install --prefix=${CMAKE_INSTALL_PREFIX} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") + +add_dependencies (compizconfig_wrapper compizconfig) find_program (PYTHON_EXECUTABLE python) mark_as_advanced (FORCE PYTHON_EXECUTABLE) @@ -41,7 +70,7 @@ foreach (PYTHON_TEST_FILE ${PYTHON_TESTS}) get_filename_component (PYTHON_TEST ${PYTHON_TEST_FILE} NAME_WE) message (STATUS "Adding test " ${PYTHON_TEST}) - add_test (NAME ${PYTHON_TEST} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests" COMMAND ${PYTHON_EXECUTABLE} -m unittest ${PYTHON_TEST}) + add_test (NAME ${PYTHON_TEST} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests" COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_TEST}) endforeach (PYTHON_TEST_FILE) endif (PYTHON_EXECUTABLE) @@ -52,5 +81,3 @@ compiz_add_distcheck () compiz_add_release () compiz_add_release_signoff () - - === modified file 'compizconfig/compizconfig-python/setup.py' --- compizconfig/compizconfig-python/setup.py 2012-05-16 17:43:25 +0000 +++ compizconfig/compizconfig-python/setup.py 2012-05-20 11:03:19 +0000 @@ -11,13 +11,17 @@ import unittest import os +pkg_config_environ = os.environ +pkg_config_environ["PKG_CONFIG_PATH"] = os.getcwd () + "/../libcompizconfig:" + os.environ.get ("PKG_CONFIG_PATH", '') + # If src/compizconfig.pyx exists, build using Cython -if os.path.exists ("src/compizconfig.pyx"): +if os.path.exists (os.getcwd () + "/src/compizconfig.pyx"): from Cython.Distutils import build_ext - ext_module_src = "src/compizconfig.pyx" + print "using pyx" + ext_module_src = os.getcwd () + "/src/compizconfig.pyx" else: # Otherwise build directly from C source from distutils.command.build_ext import build_ext - ext_module_src = "src/compizconfig.c" + ext_module_src = os.getcwd () + "/compizconfig.c" version_file = open ("VERSION", "r") version = version_file.read ().strip () @@ -28,7 +32,7 @@ flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries', '-R': 'runtime_library_dirs'} cmd = ['pkg-config', '--libs', '--cflags'] - tokens = subprocess.Popen (cmd + list(packages), stdout=subprocess.PIPE).communicate()[0].split () + tokens = subprocess.Popen (cmd + list(packages), stdout=subprocess.PIPE, env=pkg_config_environ).communicate()[0].split () for t in tokens: if '-L' in t[:2]: @@ -44,10 +48,10 @@ VERSION_FILE = os.path.join (os.path.dirname (__file__), "VERSION") -pkgconfig_libs = subprocess.Popen (["pkg-config", "--libs", "libcompizconfig"], stdout=subprocess.PIPE, stderr=open(os.devnull, 'w')).communicate ()[0] +pkgconfig_libs = subprocess.Popen (["pkg-config", "--libs", "libcompizconfig_internal"], stdout=subprocess.PIPE, env=pkg_config_environ, stderr=open(os.devnull, 'w')).communicate ()[0] if len (pkgconfig_libs) is 0: - print ("CompizConfig Python [ERROR]: No libcompizconfig.pc found in the pkg-config search path") + print ("CompizConfig Python [ERROR]: No libcompizconfig_internal.pc found in the pkg-config search path") print ("Ensure that libcompizonfig is installed or libcompizconfig.pc is in your $PKG_CONFIG_PATH") exit (1); libs = pkgconfig_libs[2:].split (" ")[0] @@ -120,7 +124,7 @@ # Build C file if os.path.exists ("src/compizconfig.pyx"): from Cython.Compiler.Main import compile as cython_compile - cython_compile ("src/compizconfig.pyx") + cython_compile ("src/compizconfig.pyx", output_file=os.getcwd () + "/compizconfig.c") # Run regular sdist _sdist.run (self) @@ -129,7 +133,7 @@ # Remove pyx source and add c source if os.path.exists ("src/compizconfig.pyx"): self.filelist.exclude_pattern ("src/compizconfig.pyx") - self.filelist.append ("src/compizconfig.c") + self.filelist.append ("compizconfig.c") class test (Command): description = "run tests" @@ -167,7 +171,7 @@ "test" : test}, ext_modules=[ Extension ("compizconfig", [ext_module_src], - **pkgconfig("libcompizconfig")) + **pkgconfig("libcompizconfig_internal")) ] ) === modified file 'compizconfig/compizconfig-python/tests/test_backend.py' --- compizconfig/compizconfig-python/tests/test_backend.py 2011-11-21 02:11:09 +0000 +++ compizconfig/compizconfig-python/tests/test_backend.py 2012-05-20 11:03:19 +0000 @@ -1,4 +1,5 @@ import compiz_config_test +import unittest class CompizConfigTestBackend (compiz_config_test.CompizConfigTest): @@ -13,3 +14,6 @@ self.assertEqual (backend.LongDesc, "Flat File Backend") self.assertEqual (backend.IntegrationSupport, False) self.assertEqual (backend.ProfileSupport, True) + +if __name__ == '__main__': + unittest.main() === modified file 'compizconfig/compizconfig-python/tests/test_plugin.py' --- compizconfig/compizconfig-python/tests/test_plugin.py 2011-11-21 02:11:09 +0000 +++ compizconfig/compizconfig-python/tests/test_plugin.py 2012-05-20 11:03:19 +0000 @@ -1,4 +1,5 @@ import compiz_config_test +import unittest class CompizConfigTestPlugin (compiz_config_test.CompizConfigTest): @@ -15,3 +16,6 @@ self.assertTrue (plugin.Category is not None) self.assertTrue (plugin.Features is not None) self.assertTrue (plugin.Initialized is True) + +if __name__ == '__main__': + unittest.main() === modified file 'compizconfig/compizconfig-python/tests/test_profile.py' --- compizconfig/compizconfig-python/tests/test_profile.py 2011-11-21 02:11:09 +0000 +++ compizconfig/compizconfig-python/tests/test_profile.py 2012-05-20 11:03:19 +0000 @@ -1,4 +1,5 @@ import compiz_config_test +import unittest class CompizConfigProfileTest (compiz_config_test.CompizConfigTest): @@ -10,3 +11,6 @@ self.assertEqual (profile1.Name, "compizconfig2", 'wrong profile name') profile2 = self.ccs.Profile (self.context, "compizconfig3") self.assertEqual (profile2.Name, "compizconfig3", 'wrong profile name') + +if __name__ == '__main__': + unittest.main() === modified file 'compizconfig/compizconfig-python/tests/test_setting.py' --- compizconfig/compizconfig-python/tests/test_setting.py 2011-11-21 02:11:09 +0000 +++ compizconfig/compizconfig-python/tests/test_setting.py 2012-05-20 11:03:19 +0000 @@ -1,4 +1,5 @@ import compiz_config_test +import unittest class CompizConfigTestSetting (compiz_config_test.CompizConfigTest): @@ -19,3 +20,6 @@ self.assertTrue (setting.Value is not None) self.assertEqual (setting.Integrated, False) self.assertEqual (setting.ReadOnly, False) + +if __name__ == '__main__': + unittest.main() === modified file 'compizconfig/libcompizconfig/CMakeLists.txt' --- compizconfig/libcompizconfig/CMakeLists.txt 2012-05-20 11:03:19 +0000 +++ compizconfig/libcompizconfig/CMakeLists.txt 2012-05-20 11:03:19 +0000 @@ -133,6 +133,11 @@ ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig.pc ) +compiz_configure_file ( + ${CMAKE_CURRENT_SOURCE_DIR}/libcompizconfig_internal.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig_internal.pc +) + install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/libcompizconfig.pc DESTINATION ${COMPIZ_DESTDIR}${libdir}/pkgconfig === added file 'compizconfig/libcompizconfig/libcompizconfig_internal.pc.in' --- compizconfig/libcompizconfig/libcompizconfig_internal.pc.in 1970-01-01 00:00:00 +0000 +++ compizconfig/libcompizconfig/libcompizconfig_internal.pc.in 2012-05-20 11:03:19 +0000 @@ -0,0 +1,12 @@ +prefix=@CMAKE_CURRENT_BINARY_DIR@/src/ +exec_prefix=@CMAKE_CURRENT_BINARY_DIR@/src/ +libdir=@CMAKE_CURRENT_BINARY_DIR@/src/ +includedir=@CMAKE_CURRENT_SOURCE_DIR@/include + +Name: libcompizconfig_internal +Description: Compiz configuration system (internal) +Version: @VERSION@ + +Libs: -L@CMAKE_CURRENT_BINARY_DIR@/src/ -lcompizconfig +Cflags: -I@CMAKE_CURRENT_SOURCE_DIR@/include +
_______________________________________________ Mailing list: https://launchpad.net/~compiz Post to : compiz@lists.launchpad.net Unsubscribe : https://launchpad.net/~compiz More help : https://help.launchpad.net/ListHelp