Skip to content

Commit 6adba6c

Browse files
authored
Merge pull request #389 from sbriseid/cmake_install_fix
Cmake install fix
2 parents 961e171 + 4a3136f commit 6adba6c

4 files changed

Lines changed: 60 additions & 124 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PROJECT(GoTools)
22

33

4-
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
4+
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
55

66
# Set version info
77
SET(GoTools_VERSION_MAJOR 4)

gotools-core/CMakeLists.txt

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -98,73 +98,58 @@ if (GoTools_COPY_DATA)
9898
DESTINATION ${GoToolsCore_BINARY_DIR}/examples)
9999
endif()
100100

101-
# 'install' target
102-
IF(WIN32)
103-
# Windows
104-
# lib
105-
INSTALL(TARGETS GoToolsCore DESTINATION ${GoTools_INSTALL_PREFIX}/lib)
106-
# include
107-
INSTALL(DIRECTORY include/
108-
DESTINATION ${GoTools_INSTALL_PREFIX}/include
109-
FILES_MATCHING PATTERN "*.h"
110-
PATTERN ".svn" EXCLUDE
111-
)
112-
ELSE(WIN32)
113-
# Linux
114-
# lib
115-
INSTALL(TARGETS GoToolsCore DESTINATION lib COMPONENT core)
116-
# include
117-
INSTALL(DIRECTORY include/
118-
DESTINATION include
119-
COMPONENT core-dev
120-
FILES_MATCHING PATTERN "*.h"
121-
PATTERN ".svn" EXCLUDE
122-
)
123-
ENDIF(WIN32)
101+
# Set default installation prefix
102+
# IF(WIN32)
103+
# SET(GoTools_INSTALL_PREFIX "$ENV{PROGRAMFILES}/SINTEF/GoTools" CACHE PATH "Path to install GoTools")
104+
# ENDIF()
105+
if(NOT DEFINED GoTools_INSTALL_PREFIX)
106+
SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools")
107+
endif()
124108

125109
# === Install Targets and Export Package ===
126-
127110
include(CMakePackageConfigHelpers)
128111

129-
# Install the GoToolsCore target with export set
112+
# Install the GoToolsCore target
130113
install(TARGETS GoToolsCore
131114
EXPORT GoToolsCoreTargets
132-
ARCHIVE DESTINATION lib
133-
LIBRARY DESTINATION lib
134-
RUNTIME DESTINATION bin
135-
INCLUDES DESTINATION include
115+
ARCHIVE DESTINATION ${GoTools_INSTALL_PREFIX}/lib
116+
LIBRARY DESTINATION ${GoTools_INSTALL_PREFIX}/lib
117+
RUNTIME DESTINATION ${GoTools_INSTALL_PREFIX}/bin
118+
INCLUDES DESTINATION ${GoTools_INSTALL_PREFIX}/include
136119
)
137120

138121
# Install headers
139122
install(DIRECTORY include/
140-
DESTINATION include
123+
DESTINATION ${GoTools_INSTALL_PREFIX}/include
141124
FILES_MATCHING PATTERN "*.h"
142125
)
143126

144-
# Export the targets to a file
127+
# Export the targets
145128
install(EXPORT GoToolsCoreTargets
146129
FILE GoToolsCoreTargets.cmake
147-
#NAMESPACE GoTools:: # So consumer can do target_link_libraries(... GoTools::GoToolsCore)
148-
DESTINATION lib/cmake/GoToolsCore
130+
DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore
149131
)
150132

151-
# Generate and install the Config and Version files
133+
# Generate version file
152134
write_basic_package_version_file(
153135
"${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfigVersion.cmake"
154136
VERSION ${GoTools_VERSION_MAJOR}.${GoTools_VERSION_MINOR}.${GoTools_VERSION_PATCH}
155137
COMPATIBILITY SameMajorVersion
156138
)
157139

140+
# Generate config file from template
158141
configure_package_config_file(
159142
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoToolsCoreConfig.cmake.in"
160143
"${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake"
161-
INSTALL_DESTINATION lib/cmake/GoToolsCore
144+
INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore
162145
)
163146

147+
# Install the config files
164148
install(FILES
165149
"${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfig.cmake"
166150
"${CMAKE_CURRENT_BINARY_DIR}/GoToolsCoreConfigVersion.cmake"
167-
DESTINATION lib/cmake/GoToolsCore
151+
DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoToolsCore
168152
)
169153

154+
# Optional stripping
170155
SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoToolsCore.so)

lrsplines2D/CMakeLists.txt

Lines changed: 37 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ IF(GoTools_ENABLE_OPENMP)
66
FIND_PACKAGE(OpenMP REQUIRED)
77
ENDIF(GoTools_ENABLE_OPENMP)
88
#set(Boost_DEBUG ON)
9+
910
FIND_PACKAGE(Boost COMPONENTS timer REQUIRED)
1011

1112
# Include directories
12-
1313
INCLUDE_DIRECTORIES(
1414
${GoLRspline2D_SOURCE_DIR}/include
1515
${GoToolsCore_SOURCE_DIR}/include
@@ -18,161 +18,112 @@ INCLUDE_DIRECTORIES(
1818
)
1919

2020
ADD_COMPILE_DEFINITIONS(BOOST_TIMER_SOURCE)
21-
2221
ADD_COMPILE_DEFINITIONS(BOOST_CHRONO_HEADER_ONLY)
2322

2423
# Linked in libraries
25-
# message("Boost_USE_STATIC_LIBS: ${Boost_USE_STATIC_LIBS}")
2624
SET(DEPLIBS
2725
GoToolsCore
2826
sisl
29-
)
30-
# message("DEPLIBS: ${DEPLIBS}")
31-
# Make the GoLRspline2D library
27+
)
3228

3329
FILE(GLOB_RECURSE GoLRspline2D_SRCS src/*.C include/*.h)
3430
if (BUILD_AS_SHARED_LIBRARY)
3531
ADD_LIBRARY(GoLRspline2D SHARED ${GoLRspline2D_SRCS})
36-
else (BUILD_AS_SHARED_LIBRARY)
32+
else ()
3733
ADD_LIBRARY(GoLRspline2D ${GoLRspline2D_SRCS})
38-
endif (BUILD_AS_SHARED_LIBRARY)
34+
endif ()
3935
TARGET_LINK_LIBRARIES(GoLRspline2D ${DEPLIBS})
40-
SET_PROPERTY(TARGET GoLRspline2D
41-
PROPERTY FOLDER "GoLRspline2D/Libs")
36+
SET_PROPERTY(TARGET GoLRspline2D PROPERTY FOLDER "GoLRspline2D/Libs")
4237
SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES SOVERSION ${GoTools_ABI_VERSION})
4338
IF(GoTools_ENABLE_OPENMP)
4439
SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}")
4540
SET_TARGET_PROPERTIES(GoLRspline2D PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}")
4641
ENDIF(GoTools_ENABLE_OPENMP)
4742

48-
49-
#message(STATUS ${GoLRspline2D_SRCS})
50-
51-
52-
# # Make the LRSplinePlotUtils library
53-
54-
# FILE(GLOB_RECURSE LRspline2D_SRCS src/*.C include/*.h)
55-
# ADD_LIBRARY(GoLRspline2D ${GoLRspline2D_SRCS})
56-
# TARGET_LINK_LIBRARIES(GoLRspline2D ${DEPLIBS})
57-
# SET_PROPERTY(TARGET GoLRspline2D
58-
# PROPERTY FOLDER "GoLRspline2D/Libs")
59-
60-
61-
# Apps, examples, tests, ...?
62-
6343
# Apps and tests
6444
MACRO(ADD_APPS SUBDIR PROPERTY_FOLDER IS_TEST)
6545
FILE(GLOB_RECURSE GoLRspline2D_APPS ${SUBDIR}/*.C)
6646
FOREACH(app ${GoLRspline2D_APPS})
6747
GET_FILENAME_COMPONENT(appname ${app} NAME_WE)
6848
ADD_EXECUTABLE(${appname} ${app})
6949
TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS})
70-
SET_TARGET_PROPERTIES(${appname}
71-
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SUBDIR})
72-
SET_PROPERTY(TARGET ${appname}
73-
PROPERTY FOLDER "GoLRspline2D/${PROPERTY_FOLDER}")
50+
SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SUBDIR})
51+
SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/${PROPERTY_FOLDER}")
7452
IF(${IS_TEST})
75-
ADD_TEST(${appname} ${SUBDIR}/${appname}
76-
--log_format=XML --log_level=all --log_sink=../Testing/${appname}.xml)
77-
SET_TESTS_PROPERTIES( ${appname} PROPERTIES LABELS "${SUBDIR}" )
78-
ENDIF(${IS_TEST})
79-
ENDFOREACH(app)
80-
ENDMACRO(ADD_APPS)
53+
ADD_TEST(${appname} ${SUBDIR}/${appname} --log_format=XML --log_level=all --log_sink=../Testing/${appname}.xml)
54+
SET_TESTS_PROPERTIES(${appname} PROPERTIES LABELS "${SUBDIR}")
55+
ENDIF()
56+
ENDFOREACH()
57+
ENDMACRO()
8158

8259
IF(GoTools_COMPILE_APPS)
8360
SET(DEPLIBS ${DEPLIBS} ${Boost_LIBRARIES})
8461
FILE(GLOB_RECURSE GoLRspline2D_APPS app/*.C)
8562
FOREACH(app ${GoLRspline2D_APPS})
8663
GET_FILENAME_COMPONENT(appname ${app} NAME_WE)
87-
# message(STATUS ${appname})
88-
# message(STATUS ${app})
8964
ADD_EXECUTABLE(${appname} ${app})
9065
TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS})
91-
SET_TARGET_PROPERTIES(${appname}
92-
PROPERTIES RUNTIME_OUTPUT_DIRECTORY app)
66+
SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY app)
9367
IF(GoTools_ENABLE_OPENMP)
9468
SET_TARGET_PROPERTIES(${appname} PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}")
9569
SET_TARGET_PROPERTIES(${appname} PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}")
96-
ENDIF(GoTools_ENABLE_OPENMP)
97-
SET_PROPERTY(TARGET ${appname}
98-
PROPERTY FOLDER "GoLRspline2D/Apps")
99-
ENDFOREACH(app)
70+
ENDIF()
71+
SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/Apps")
72+
ENDFOREACH()
10073

10174
FILE(GLOB_RECURSE GoLRspline2D_EXAMPLES examples/*.C)
10275
FOREACH(app ${GoLRspline2D_EXAMPLES})
10376
GET_FILENAME_COMPONENT(appname ${app} NAME_WE)
10477
ADD_EXECUTABLE(${appname} ${app})
10578
TARGET_LINK_LIBRARIES(${appname} GoLRspline2D ${DEPLIBS})
106-
SET_TARGET_PROPERTIES(${appname}
107-
PROPERTIES RUNTIME_OUTPUT_DIRECTORY examples)
79+
SET_TARGET_PROPERTIES(${appname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY examples)
10880
IF(GoTools_ENABLE_OPENMP)
10981
SET_TARGET_PROPERTIES(${appname} PROPERTIES COMPILE_FLAGS "${OpenMP_CXX_FLAGS}")
11082
SET_TARGET_PROPERTIES(${appname} PROPERTIES LINK_FLAGS "${OpenMP_CXX_FLAGS}")
111-
ENDIF(GoTools_ENABLE_OPENMP)
112-
SET_PROPERTY(TARGET ${appname}
113-
PROPERTY FOLDER "GoLRspline2D/Examples")
114-
ENDFOREACH(app)
115-
ENDIF(GoTools_COMPILE_APPS)
116-
83+
ENDIF()
84+
SET_PROPERTY(TARGET ${appname} PROPERTY FOLDER "GoLRspline2D/Examples")
85+
ENDFOREACH()
86+
ENDIF()
11787

11888
IF(GoTools_COMPILE_TESTS)
11989
SET(DEPLIBS ${DEPLIBS} ${Boost_LIBRARIES})
12090
ADD_APPS(test/unit "Unit Tests" TRUE)
12191
ADD_APPS(test/integration "Integration Tests" TRUE)
12292
ADD_APPS(test/acceptance "Acceptance Tests" TRUE)
123-
ENDIF(GoTools_COMPILE_TESTS)
93+
ENDIF()
12494

12595
# Create a tmp directory.
12696
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp)
12797

12898
# Copy data
12999
if (GoTools_COPY_DATA)
130-
FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../gotools-data/lrsplines2D/data
131-
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
100+
FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../gotools-data/lrsplines2D/data DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
132101
endif()
133102

134-
# 'install' target
135-
136-
IF(WIN32)
137-
# Windows
138-
# lib
139-
INSTALL(TARGETS GoLRspline2D DESTINATION ${GoTools_INSTALL_PREFIX}/lib)
140-
# include
141-
INSTALL(DIRECTORY include/GoTools/lrsplines2D
142-
DESTINATION ${GoTools_INSTALL_PREFIX}/include/GoTools
143-
FILES_MATCHING PATTERN "*.h"
144-
PATTERN ".svn" EXCLUDE
145-
)
146-
ELSE(WIN32)
147-
# Linux
148-
# lib
149-
INSTALL(TARGETS GoLRspline2D DESTINATION lib COMPONENT lrsplines2D)
150-
# include
151-
INSTALL(DIRECTORY include/GoTools/lrsplines2D
152-
DESTINATION include/GoTools
153-
COMPONENT lrsplines2D-dev
154-
FILES_MATCHING PATTERN "*.h"
155-
PATTERN ".svn" EXCLUDE
156-
)
157-
ENDIF(WIN32)
158-
159103
# === Install and Export CMake Config Package ===
160104

105+
# if(NOT DEFINED GoTools_INSTALL_PREFIX)
106+
# set(GoTools_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
107+
# endif()
108+
if(NOT DEFINED GoTools_INSTALL_PREFIX)
109+
SET(GoTools_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Path to install GoTools")
110+
endif()
111+
161112
include(CMakePackageConfigHelpers)
162113

163114
# Install the GoLRspline2D target
164115
install(TARGETS GoLRspline2D
165116
EXPORT GoLRspline2DTargets
166-
ARCHIVE DESTINATION lib
167-
LIBRARY DESTINATION lib
168-
RUNTIME DESTINATION bin
169-
INCLUDES DESTINATION include
117+
ARCHIVE DESTINATION ${GoTools_INSTALL_PREFIX}/lib
118+
LIBRARY DESTINATION ${GoTools_INSTALL_PREFIX}/lib
119+
RUNTIME DESTINATION ${GoTools_INSTALL_PREFIX}/bin
120+
INCLUDES DESTINATION ${GoTools_INSTALL_PREFIX}/include
170121
)
171122

172123
# Export the target without namespace
173124
install(EXPORT GoLRspline2DTargets
174125
FILE GoLRsplines2DTargets.cmake
175-
DESTINATION lib/cmake/GoLRsplines2D
126+
DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D
176127
)
177128

178129
# Generate the version file for find_package()
@@ -186,14 +137,14 @@ write_basic_package_version_file(
186137
configure_package_config_file(
187138
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/GoLRsplines2DConfig.cmake.in"
188139
"${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake"
189-
INSTALL_DESTINATION lib/cmake/GoLRsplines2D
140+
INSTALL_DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D
190141
)
191142

192143
# Install the generated config files
193144
install(FILES
194145
"${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfig.cmake"
195146
"${CMAKE_CURRENT_BINARY_DIR}/GoLRsplines2DConfigVersion.cmake"
196-
DESTINATION lib/cmake/GoLRsplines2D
147+
DESTINATION ${GoTools_INSTALL_PREFIX}/lib/cmake/GoLRsplines2D
197148
)
198149

199150
SET(CPACK_STRIP_FILES ${CPACK_STRIP_FILES} libGoLRspline2D.so)

sisl

0 commit comments

Comments
 (0)