LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 08-24-2008, 03:28 PM   #1
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Rep: Reputation: 15
Is it ok to build latest cmake dir in personal directory?


Really easy question, but running it through your distros package manager just seems so much more right.
 
Old 08-24-2008, 05:51 PM   #2
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
Ok, well I tried transplanting cmake from personal into usr/bin/ and this started to work, but then it warned me that I should have all of cmake working in root, which is what I expected. I don't think that moving the modules directory into usr/bin is the only thing that I will need to do to get all of cmake to work.

Can someone help me with a way to build cmake in my program dirs independently of my package manager?
 
Old 08-24-2008, 05:59 PM   #3
syg00
LQ Veteran
 
Registered: Aug 2003
Location: Australia
Distribution: Lots ...
Posts: 21,155

Rep: Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125
What does the Readme.txt say ?. Typically you would do the compile as a user, then something like "make install" as root to get the binaries into the "correct" location.
 
Old 08-24-2008, 06:31 PM   #4
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
According to the cmake website, I can probably do one of two things.

1. Download an .sh file, run it with /bin/sh and follow the instructions. (What kind of command line would you use to run this and what directory would the .sh file have to be in?)

2. Untare a regular tar file, but in which directory, as it won't work in the personal directory and the untarred package gives you four parent directories - bin, share, man, and doc, of which I know that one of the subdirectories also goes in usr/bin.

As far as the readme is concerned, I'll give you a taste of everything it says. It only talks about making files, not about building qmake.

Quote:
Note to authors of FindXXX.cmake files

We would like all FindXXX.cmake files to produce consistent variable names.

Please use the following consistent variable names for general use.

XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry.
XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry.
XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include <jpeg.h>
XXX_EXECUTABLE Where to find the XXX tool.
XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX.
XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry.
XXX_ROOT_DIR Where to find the base directory of XXX.
XXX_VERSION_YY Expect Version YY if true. Make sure at most one of these is ever true.
XXX_WRAP_YY If False, do not try to use the relevent CMake wrapping command.
XXX_YY_FOUND If False, optional YY part of XXX sytem is not available.
XXX_FOUND Set to false, or undefined, if we haven't found, or don't want to use XXX.
XXX_RUNTIME_LIBRARY_DIRS Optionally, the runtime library search path for use when running an executable linked to shared libraries.
The list should be used by user code to create the PATH on windows or LD_LIBRARY_PATH on unix.
This should not be a cache entry.
XXX_VERSION_STRING A human-readable string containing the version of the package found, if any.
XXX_VERSION_MAJOR The major version of the package found, if any.
XXX_VERSION_MINOR The minor version of the package found, if any.
XXX_VERSION_PATCH The patch version of the package found, if any.

You do not have to provide all of the above variables. You should provide XXX_FOUND under most circumstances. If XXX is a library, then XXX_LIBRARIES, should also be defined, and XXX_INCLUDE_DIRS should usually be defined (I guess libm.a might be an exception)

The following names should not usually be used in CMakeLists.txt files, but they may be usefully modified in users' CMake Caches to control stuff.

XXX_LIBRARY Name of XXX Library. A User may set this and XXX_INCLUDE_DIR to ignore to force non-use of XXX.
XXX_YY_LIBRARY Name of YY library that is part of the XXX system. It may or may not be required to use XXX.
XXX_INCLUDE_DIR Where to find xxx.h, etc. (XXX_INCLUDE_PATH was considered bad because a path includes an actual filename.)
XXX_YY_INCLUDE_DIR Where to find xxx_yy.h, etc.

For tidiness's sake, try to keep as many options as possible out of the cache, leaving at least one option which can be used to disable use of the module, or locate a not-found library (e.g. XXX_ROOT_DIR). For the same reason, mark most cache options as advanced.

If you need other commands to do special things then it should still begin with XXX_. This gives a sort of namespace effect and keeps things tidy for the user. You should put comments describing all the exported settings, plus descriptions of any the users can use to control stuff.

You really should also provide backwards compatibility any old settings that were actually in use. Make sure you comment them as deprecated, so that no-one starts using them.

To correctly document a module, create a comment block at the top with # comments. There are three types of comments that can be in the block:

1. The brief description of the module, this is done by:
# - a small description

2. A paragraph of text. This is done with all text that has a single
space between the # and the text. To create a new paragraph, just
put a # with no text on the line.

3. A verbatim line. This is done with two spaces between the # and the text.

For example:

# - This is a cool module
# This module does really cool stuff.
# It can do even more than you think.
#
# It even needs to paragraphs to tell you about it.
# And it defines the following variables:
# VAR_COOL - this is great isn't it?
# VAR_REALLY_COOL - cool right?
#

To have a .cmake file in this directory NOT show up in the
modules documentation, you should start the file with a blank
line.

A FindXXX.cmake module will typically be loaded by the command

FIND_PACKAGE(XXX [major[.minor[.patch]]] [EXACT]
[QUIET] [REQUIRED [components...]])

If any version numbers are given to the command it will set the
variable XXX_FIND_VERSION to contain the whole version. The variables
XXX_FIND_VERSION_MAJOR, XXX_FIND_VERSION_MINOR, and
XXX_FIND_VERSION_PATCH will be set to contain the corresponding
portions of the version number. The variable XXX_FIND_VERSION_EXACT
will indicate whether an exact version is requested.
If the find module supports versioning it should locate a version of
the package that is compatible with the version requested. If a
compatible version of the package cannot be found the module should
not report success. The version of the package found should be stored
in the version variables named above.

If the QUIET option is given to the command it will set the variable
XXX_FIND_QUIETLY to true before loading the FindXXX.cmake module. If
this variable is set the module should not complain about not being
able to find the package. If the
REQUIRED option is given to the command it will set the variable
XXX_FIND_REQUIRED to true before loading the FindXXX.cmake module. If
this variable is set the module should issue a FATAL_ERROR if the
package cannot be found. For each package-specific component, say
YYY, listed after the REQUIRED option a variable XXX_FIND_REQUIRED_YYY
to true. The set of components listed will also be specified in a
XXX_FIND_COMPONENTS variable. This can be used by the FindXXX.cmake
module to determine which sub-components of the package must be found.
If neither the QUIET nor REQUIRED options are given then the
FindXXX.cmake module should look for the package and complain without
error if the module is not found.

To get this behaviour you can use the FIND_PACKAGE_HANDLE_STANDARD_ARGS()
macro, as an example see FindJPEG.cmake.

Last edited by agentchange; 08-24-2008 at 07:00 PM.
 
Old 08-24-2008, 07:19 PM   #5
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
Ok. I copied the .sh file to the root. Then, I thought this would work when I ran this line.

justin@justin-desktop:~$ sudo chmod +x /cmake-2.6.1-Linux-i386.sh

Next thing is that I am supposed to get this shell or something like ./cmake-2.6.1-Linux-i386.sh , but it is not happening. Not sure where to go from here.
 
Old 08-24-2008, 07:22 PM   #6
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
I think that maybe the script is missing the proper "shebang line" at the beginning.
 
Old 08-24-2008, 07:30 PM   #7
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
voila, the shebang line, justin@justin-desktop:~$ sudo sh /cmake-2.6.1-Linux-i386.sh , and it ends up putting it in your personal box.
 
Old 08-24-2008, 07:36 PM   #8
agentchange
Member
 
Registered: May 2006
Distribution: Ubuntu 8.04
Posts: 132

Original Poster
Rep: Reputation: 15
... but it did not register cmake correctly, so I would need to figure out how to utilize these 4 directories of qmake LOCKED in my personal box for the qmake lmms to work properly.

This is the wall that I am at.

Quote:
justin@justin-desktop:~/Desktop/LMMS/lmms-0.4.0-beta2/build$ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/bin
CMake Error: Error executing cmake::LoadCache(). Aborting.

Last edited by agentchange; 08-24-2008 at 07:43 PM.
 
Old 09-06-2008, 06:35 AM   #9
knudfl
LQ 5k Club
 
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,517

Rep: Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641
The way to use cmake : You will need 2 directories
in your e.g. /home/agentchange/Desktop , or better
make a /home/agentchange/tmp for building stuff.

1) /home/agentchange/tmp/"app-to-build-with-cmake"
2) /home/agentchange/tmp/build-app-xx

Then do 'cd ~tmp/build-app-xx'
and next 'cmake ../app-to-build-with-cmake'
Be aware of the 2 dots telling 'cmake' where to
find "the root" of the application.

A Makefile is generateted, so afterwards just
'make' and when made # 'make install'

Also see examples ( easy to find with the
LQ Search .. cmake .. )
http://www.linuxquestions.org/questi...ighlight=cmake
http://www.linuxquestions.org/questi...ighlight=cmake


Good Luck !

P.S.: The qmake from Qt4 must be linked to /usr/bin/qmake-qt4
to build lmms-0.4.0-beta2, any reference, PATH=.. etc.
will not work.
#2 http://www.linuxquestions.org/questi...ighlight=cmake

Last edited by knudfl; 09-06-2008 at 02:38 PM.
 
  


Reply

Tags
cmake



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Problems with latest Ubuntu build Ann Gaviglio Ubuntu 2 11-29-2007 04:29 PM
LXer: The Road to KDE 4: CMake, a New Build System for KDE LXer Syndicated Linux News 0 02-22-2007 09:31 AM
build latest network-manager schurt Ubuntu 1 08-28-2006 03:49 AM
personal Dir on linux (not normal ones) roastario Linux - Newbie 3 01-24-2005 01:19 PM
Mandrake 10- No Build Dir??? Seribicus Mandriva 2 07-12-2004 05:50 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 09:23 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration