mirror of
				https://github.com/psycopg/psycopg2.git
				synced 2025-11-04 01:37:31 +03:00 
			
		
		
		
	Build psycopg from Python
This commit is contained in:
		
							parent
							
								
									c875197432
								
							
						
					
					
						commit
						169ce22228
					
				| 
						 | 
				
			
			@ -82,23 +82,17 @@ init:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
# Repository gets cloned, Cache is restored
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
    - "%PYEXE% C:\\appveyor.py install"
 | 
			
		||||
 | 
			
		||||
# PostgreSQL server starts now
 | 
			
		||||
 | 
			
		||||
build: off
 | 
			
		||||
 | 
			
		||||
#before_build:
 | 
			
		||||
 | 
			
		||||
build_script:
 | 
			
		||||
    # Add PostgreSQL binaries to the path
 | 
			
		||||
    - PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%
 | 
			
		||||
    - CD C:\Project
 | 
			
		||||
    - "%PYTHON%\\python.exe setup.py build_ext --have-ssl --pg-config %PGTOP%\\bin\\pg_config.exe -l libpgcommon -l libpgport -L %OPENSSLTOP%\\lib -I %OPENSSLTOP%\\include"
 | 
			
		||||
    - "%PYTHON%\\python.exe setup.py build"
 | 
			
		||||
    - "%PYTHON%\\python.exe setup.py install"
 | 
			
		||||
    - RD /S /Q psycopg2.egg-info
 | 
			
		||||
    - "%PYEXE% C:\\appveyor.py build_script"
 | 
			
		||||
 | 
			
		||||
#after_build:
 | 
			
		||||
 | 
			
		||||
before_test:
 | 
			
		||||
    # Create and setup PostgreSQL database for the tests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,14 +95,11 @@ def setup_env():
 | 
			
		|||
 | 
			
		||||
def python_info():
 | 
			
		||||
    logger.info("Python Information")
 | 
			
		||||
    out = out_command([py_exe(), '--version'], stderr=sp.STDOUT)
 | 
			
		||||
    logger.info("%s", out)
 | 
			
		||||
 | 
			
		||||
    out = out_command(
 | 
			
		||||
    run_command([py_exe(), '--version'], stderr=sp.STDOUT)
 | 
			
		||||
    run_command(
 | 
			
		||||
        [py_exe(), '-c']
 | 
			
		||||
        + ["import sys; print('64bit: %s' % (sys.maxsize > 2**32))"]
 | 
			
		||||
    )
 | 
			
		||||
    logger.info("%s", out)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def step_init():
 | 
			
		||||
| 
						 | 
				
			
			@ -131,6 +128,10 @@ def step_install():
 | 
			
		|||
    build_libpq()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def step_build_script():
 | 
			
		||||
    build_psycopg()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def build_openssl():
 | 
			
		||||
    top = os.path.join(base_dir(), 'openssl')
 | 
			
		||||
    if os.path.exists(os.path.join(top, 'lib', 'libssl.lib')):
 | 
			
		||||
| 
						 | 
				
			
			@ -284,6 +285,33 @@ $config->{openssl} = "%s";
 | 
			
		|||
    shutil.rmtree(os.path.join(pgbuild))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def build_psycopg():
 | 
			
		||||
    # Add PostgreSQL binaries to the path
 | 
			
		||||
    setenv(
 | 
			
		||||
        'PATH',
 | 
			
		||||
        os.pathsep.join(
 | 
			
		||||
            [r'C:\Program Files\PostgreSQL\9.6\bin', os.environ['PATH']]
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
    os.chdir(r"C:\Project")
 | 
			
		||||
 | 
			
		||||
    # Find the pg_config just built
 | 
			
		||||
    path = os.pathsep.join(
 | 
			
		||||
        [os.path.join(base_dir(), r'postgresql\bin'), os.environ['PATH']]
 | 
			
		||||
    )
 | 
			
		||||
    setenv('PATH', path)
 | 
			
		||||
 | 
			
		||||
    run_command(
 | 
			
		||||
        [py_exe(), "setup.py", "build_ext", "--have-ssl"]
 | 
			
		||||
        + ["-l", "libpgcommon", "-l", "libpgport"]
 | 
			
		||||
        + ["-L", os.path.join(base_dir(), r'openssl\lib')]
 | 
			
		||||
        + ['-I', os.path.join(base_dir(), r'openssl\include')]
 | 
			
		||||
    )
 | 
			
		||||
    run_command([py_exe(), "setup.py", "build_py"])
 | 
			
		||||
    run_command([py_exe(), "setup.py", "install"])
 | 
			
		||||
    shutil.rmtree("psycopg2.egg-info")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def download(url, fn):
 | 
			
		||||
    """Download a file locally"""
 | 
			
		||||
    logger.info("downloading %s", url)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user