[pgrouting-dev] Reg: Compile error in KSP with PostgreSQL 8.4

Stephen Woodbridge woodbri at swoodbridge.com
Mon Jun 22 16:07:36 PDT 2015


On 6/22/2015 6:14 PM, Manikanta Kondeti wrote:
> Steve,
>
> That's giving me an error. I understood the workflow, Here is the main
> thing that I've to look at :[line 36]  POSTGRESQL_PG_CONFIG =
> "/usr/bin/pg_config" and that is of version 8.4.22. From this the

The point is that cmake is search the PATh variable and which is why it 
is finding /usr/bin/pg_config instead of 
/usr/lib/postgresql/9.1/bin/pg_config

The point of NO_DEFAULT_PATH argument is to prevent it from search the 
default paths and to only look at the ones you are specifying.

> variable POSTGRESQL_VERSION_STRING is set which makes all the variables
> in CMakeLists.txt to 8.4. This makes the whole POSTGRESQL variables in
> CMakeLists.txt to 8.4. We can see that from cmake log.
>
> So if we can control this line 36 to the PG_VERSION we specify, then
> everything works fine. I will let you know if I got something
> interesting. I'd be highly thankful if you suggest something at this point.

The code below works on my system. I'm using cmake version 2.8.12.2

cmake --version

I don't know when that variable was added, you probably have an older 
version. ALSO, rm -rf build/* so you clean out the cmake cache. It 
didn't work until I cleared it.

-Steve

> - Mani
>
> On Tue, Jun 23, 2015 at 3:16 AM, Stephen Woodbridge
> <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>> wrote:
>
>     Try changing it to this:
>
>     # Checking POSTGRESQL_PG_CONFIG
>          find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
>              PATHS
>              /usr/lib/postgresql/${PG_VERSION}/bin/
>              NO_DEFAULT_PATH
>              )
>
>     also read this:
>
>     cmake --help-command FIND_PROGRAM
>
>     -Steve
>
>     On 6/22/2015 4:43 PM, Manikanta Kondeti wrote:
>
>         Steve,
>
>         Thanks for the steps. I am thinking in a  different method. I just
>         pushed a branch cmake-postgres. In File FindPostgreSQL.cmake on
>         line no:
>         19, PG_VERSION is a argument passed while running cmake. ( cmake
>         -DPG_VERSION=9.* ).
>
>         * Take an argument from  command line.
>         *  Modify the present FindPostgreSQL.cmake, build it until it is
>         working
>         properly.
>
>         I am stuck here at this point.  See line no:  43 (
>         COMMAND${POSTGRESQL_PG_CONFIG}--version)  this is giving 8.4 as
>         defaults. Therefore variables after this are set with 8.4, I need to
>         somehow understand and change it.
>
>         If you are free now we can discuss this.
>         - Mani
>
>         On Tue, Jun 23, 2015 at 1:18 AM, Stephen Woodbridge
>         <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>
>         <mailto:woodbri at swoodbridge.com
>         <mailto:woodbri at swoodbridge.com>>> wrote:
>
>              Mani wrote:
>
>                  I'm working on this already. Since this is my first time on
>                  cmake and
>                  dependencies I might need some help from you guys.
>
>                  I'll try my best to make it working.
>
>
>              Start with the message below and ask where you get stuck.
>         The steps are:
>
>              1. copy the FindPostgreSQL.cmake linked below to the
>         pgrouting/cmake
>
>              2. this will break the build stuff because this new script sets
>              different variables than the existing build expects.
>
>              3. sort this out and get it to build like it did before
>         using the
>              new script
>
>              4. when it is building like before, add the variable to set the
>              version in the commandline and and use that to set
>              PostgreSQL_ADDITIONAL_VERSIONS  and it should work.
>
>              Ask specific questions if you get stuck, check in your code
>         where I
>              can look at it.
>
>              There is a ticket for this:
>         https://github.com/pgRouting/pgrouting/issues/301
>
>              -Steve
>
>
>              On 6/22/2015 12:15 PM, Stephen Woodbridge wrote:
>
>                  Mani,
>
>                  You probably want to start with this version of
>         FindPostgreSQL.cmake
>
>         https://github.com/Kitware/CMake/blob/master/Modules/FindPostgreSQL.cmake
>
>                    It lets you specify PostgreSQL_ADDITIONAL_VERSIONS
>         variable
>                  and if
>                  this is set to the version you want it will use this
>         version if
>                  found.
>
>                  I think that the return variables that this script sets are
>                  different
>                    from what we expect in pgrouting so you might need to
>         set the
>                  expected variables with the correct values also.
>
>                  So, I would replace the existing FindPostgreSQL.cmake
>         with this
>                  script and then try to make it work with the existing
>         build system,
>                  then look at reading a command line version and setting
>         the variable
>                  above before calling find postgresql.
>
>                  -Steve
>
>                  On 6/22/2015 11:50 AM, Manikanta Kondeti wrote:
>
>                      Hi Steve,
>
>                      I've tried my best to update
>         cmake/FindPostgreSQL.cmake  and
>                      CMakeLists.txt, but the build was not successful. I've
>                      changed all
>                      the POSTGRES variables to 9.4, cmake executed
>         properly, but
>                      while
>                      compiling(make) there is a error saying
>         "Postgres.h" not
>                      found. Can
>                      you share your CMakeLists.txt and
>                      cmake/FindPostgresql..cmake. I am
>                      on the version 9.4.
>
>                      I think this needs to be solved for the next
>         release. We need to
>                      the pass the postgresql version to build,  like the
>         option you
>                      said "DUSE_PG=9.x". But unfortunately it is not working
>                      right now.
>                      I'll try to read about cmake and see what I can do.
>         I will
>                      update
>                      you.
>
>                      Thank you, Mani
>
>                      On Mon, Jun 22, 2015 at 8:20 PM, Stephen Woodbridge
>                      <woodbri at swoodbridge.com
>         <mailto:woodbri at swoodbridge.com> <mailto:woodbri at swoodbridge.com
>         <mailto:woodbri at swoodbridge.com>>
>                      <mailto:woodbri at swoodbridge.com
>         <mailto:woodbri at swoodbridge.com>
>
>                      <mailto:woodbri at swoodbridge.com
>         <mailto:woodbri at swoodbridge.com>>>> wrote:
>
>                      On 6/22/2015 10:37 AM, Manikanta Kondeti wrote:
>
>                      Hi,
>
>                      I am facing an error while building from source.
>         This is that
>                      issue:
>         https://github.com/pgRouting/pgrouting/issues/109
>
>                      How to resolve that?  Changing Pg version to 9.1 in
>                      CMakeLists.txt
>                      is not working. I have 9.1 and 9.4 postgresql versions
>                      installed in
>                      my system. Help me out in resolving this.
>
>
>                      Mani,
>
>                      Sorry, the CMakeLists.txt files built for pgrouting
>         2.x were not
>                      designed for support multiple versions installed on
>         the same
>                      system. This is a problem for me because I have
>         9.2, 9.3,
>                      and 9.4
>                      installed and I can only build and install on 9.4.
>
>                      The solution id to update the CMakeLists.txt and
>         specifically
>                      cmake/FindPostgreSQL.cmake which so you can do
>         something like
>
>                      cd build cmake -DUSE_PG=9.x ..
>
>                      I took a quick look at doing this a while back but
>                      cmake/FindPostgreSQL.cmake needs to be replaced and
>         other
>                      changes
>                      are needed and I didn't have time to make the
>         changes and get it
>                      working.
>
>                      tools/test-runner.pl <http://test-runner.pl>
>         <http://test-runner.pl>
>                      <http://test-runner.pl> already support
>                      options for pg versions and ports so only the build
>         system is
>                      broken in this regard.
>
>                      If you want to read up on CMake and get this
>         working a pull
>                      request would be great!
>
>                      -Steve
>
>                      _______________________________________________
>         pgrouting-dev
>                      mailing list pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>
>                      <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>>
>                      <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>
>                      <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>>>
>         http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>
>
>                      _______________________________________________
>         pgrouting-dev
>                      mailing list pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>
>                      <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>>
>         http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>                  _______________________________________________
>         pgrouting-dev
>                  mailing
>                  list pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>
>                  <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>>
>         http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>              _______________________________________________
>              pgrouting-dev mailing list
>         pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>
>         <mailto:pgrouting-dev at lists.osgeo.org
>         <mailto:pgrouting-dev at lists.osgeo.org>>
>         http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>
>
>         _______________________________________________
>         pgrouting-dev mailing list
>         pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.osgeo.org>
>         http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>     _______________________________________________
>     pgrouting-dev mailing list
>     pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.osgeo.org>
>     http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
>
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>



More information about the pgrouting-dev mailing list