summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward O'Callaghan <funfunctor@folklore1984.net>2017-02-05 15:59:07 +1100
committerTom St Denis <tom.stdenis@amd.com>2017-02-05 10:32:23 -0500
commitf525260890f5e9638748b4cd809fe4a8e7eaf3c2 (patch)
tree17cd2339f41b64d15cffe73d726de77ebbc40225
parent7a70051cef195d33d3e88b855a624ffc273bb333 (diff)
cmake: Initial build system
V.2: squash in, cmake: Add docs manpage build target cmake: Add install targets cmake: Misc fixes Signed-off-by: Edward O'Callaghan <funfunctor@folklore1984.net> Reviewed-by: Tom St Denis <tom.stdenis@amd.com>
-rw-r--r--CMakeLists.txt40
-rw-r--r--doc/CMakeLists.txt3
-rw-r--r--src/CMakeLists.txt6
-rw-r--r--src/app/CMakeLists.txt24
-rw-r--r--src/lib/CMakeLists.txt28
-rw-r--r--src/lib/asic/CMakeLists.txt20
-rw-r--r--src/lib/ip/CMakeLists.txt41
7 files changed, 162 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..bef94fd
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+cmake_minimum_required(VERSION 3.0.1)
+
+project(umr)
+
+SET(MAJOR_VERSION 1)
+SET(MINOR_VERSION 0)
+
+SET(RELEASE_VERSION \"${MAJOR_VERSION}.${MINOR_VERSION}\")
+execute_process(COMMAND git describe --abbrev=12 --always
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ OUTPUT_VARIABLE GIT_REV
+)
+add_definitions(-DUMR_BUILD_VER=${RELEASE_VERSION})
+add_definitions(-DUMR_BUILD_REV=\"${GIT_REV}\")
+
+# Add local repository for FindXXX.cmake modules.
+SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/" ${CMAKE_MODULE_PATH})
+
+find_package(Curses REQUIRED)
+include_directories(${CURSES_INCLUDE_DIRS})
+
+find_package(PCIAccess REQUIRED)
+include_directories(${PCIACCESS_INCLUDE_DIR})
+
+set(REQUIRED_EXTERNAL_LIBS
+ ${CURSES_LIBRARIES}
+ ${PCIACCESS_LIBRARIES}
+)
+
+# Global setting: build everything position independent
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+# CFLAGS += -Wall -W -O2 -g3 -Isrc/ -DPIC -fPIC
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -W -O2 -g3")
+
+add_subdirectory(src)
+add_subdirectory(doc)
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644
index 0000000..112ad48
--- /dev/null
+++ b/doc/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+install(FILES umr.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..e9eaeeb
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
+
+add_subdirectory(lib)
+add_subdirectory(app)
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
new file mode 100644
index 0000000..117d3f1
--- /dev/null
+++ b/src/app/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+project(umr)
+
+#application objects
+add_library(umrapp
+ print.c
+ print_config.c
+ ring_read.c
+ scan.c
+ scan_log.c
+ top.c
+ umr_lookup.c
+ set_bit.c
+ set_reg.c
+ print_waves.c
+ enum.c
+)
+
+add_executable(umr main.c)
+target_link_libraries(umr umrapp)
+target_link_libraries(umr umrcore)
+
+install(TARGETS umr DESTINATION bin)
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
new file mode 100644
index 0000000..46c75d6
--- /dev/null
+++ b/src/lib/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+add_subdirectory(asic)
+add_subdirectory(ip)
+
+add_library(umrcore STATIC
+ bitfield_print.c
+ close_asic.c
+ create_asic_helper.c
+ discover_by_did.c
+ discover_by_name.c
+ discover.c
+ dump_ib.c
+ find_reg.c
+ mmio.c
+ query_drm.c
+ read_sgpr.c
+ read_vram.c
+ ring_decode.c
+ scan_config.c
+ wave_status.c
+ create_mmio_accel.c
+ $<TARGET_OBJECTS:asic> $<TARGET_OBJECTS:ip>
+)
+
+target_link_libraries(umrcore ${REQUIRED_EXTERNAL_LIBS})
+
+install(TARGETS umrcore DESTINATION lib)
diff --git a/src/lib/asic/CMakeLists.txt b/src/lib/asic/CMakeLists.txt
new file mode 100644
index 0000000..6cfec30
--- /dev/null
+++ b/src/lib/asic/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+#library objects (ASICs blocks)
+add_library(asic OBJECT
+ bonaire.c
+ carrizo.c
+ fiji.c
+ hainan.c
+ kaveri.c
+ oland.c
+ pitcairn.c
+ polaris10.c
+ polaris11.c
+ polaris12.c
+ stoney.c
+ tahiti.c
+ tonga.c
+ topaz.c
+ verde.c
+)
diff --git a/src/lib/ip/CMakeLists.txt b/src/lib/ip/CMakeLists.txt
new file mode 100644
index 0000000..2c2fe68
--- /dev/null
+++ b/src/lib/ip/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright 2017 Edward O'Callaghan <funfunctor@folklore1984.net>
+
+add_library(ip OBJECT
+ bif30.c
+ bif41.c
+ bif50.c
+ bif51.c
+ dce100.c
+ dce110.c
+ dce112.c
+ dce60.c
+ dce80.c
+ gfx60.c
+ gfx70.c
+ gfx72.c
+ gfx80.c
+ gfx81.c
+ gmc60.c
+ gmc70.c
+ gmc71.c
+ gmc81.c
+ gmc82.c
+ oss10.c
+ oss20.c
+ oss30.c
+ smu60.c
+ smu700.c
+ smu701.c
+ smu710.c
+ smu711.c
+ smu712.c
+ smu713.c
+ smu80.c
+ uvd40.c
+ uvd42.c
+ uvd5.c
+ uvd6.c
+ vce1.c
+ vce2.c
+ vce3.c
+)